gpt4 book ai didi

c++ - 如何使用 std:move 和 back inserter 将 std::list 中的元素 move 到末尾?

转载 作者:行者123 更新时间:2023-12-02 15:57:08 25 4
gpt4 key购买 nike

在我的 std::list 中,我有 10 个元素,我想将数字 1000 移到列表的后面。

https://leetcode.com/playground/gucNuPit

有没有更好的方法,使用 std::move、后插入器或任何其他 C++ 语法的 1 衬里有意识地实现这一点?

// Move the number 1000 to the end of the list

#include <iostream>
#include <algorithm>
#include <list>
using namespace std;
int main() {

list<int> myList({2,3,4,1000,5,6,7,8,9,10});

cout << "List before " << endl;
for(auto e : myList)
cout << e << " ";

// get iterator to the number 1000 in the list
list<int>::iterator findIter = std::find(myList.begin(), myList.end(), 1000);

int val_to_move_to_end = *findIter;

myList.erase(findIter);

myList.push_back(val_to_move_to_end);

cout << endl << endl << "List after " << endl;
for(auto e : myList)
cout << e << " ";

return 0;
}

最佳答案

您可以使用 std::list::splice(..) 来实现这一点

myList.splice(myList.end(), myList, std::find(myList.begin(), myList.end(), 1000));

查看 documentation

关于c++ - 如何使用 std:move 和 back inserter 将 std::list 中的元素 move 到末尾?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71368658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com