gpt4 book ai didi

c++ - 为什么 swap() 函数不能与 vector 的迭代器一起使用?

转载 作者:太空狗 更新时间:2023-10-29 23:27:32 24 4
gpt4 key购买 nike

我只是不明白为什么 swap() 函数不能工作?它还接收两个迭代器。谁能告诉我原因?

#include <iostream>
#include <vector>

using namespace std;

int main()
{

vector<int> vt;
vt.push_back(0);
vt.push_back(1);

vector<int>::iterator it1 = vt.begin();
vector<int>::iterator it2 = ++vt.begin();
cout << vt[0]; // 0
cout << vt[1] << endl; // 1

swap(it1, it2);

cout << vt[0]; // still 0
cout << vt[1] << endl; // still 1

system("pause");
return 0;
}

最佳答案

swap() 从字面上交换传递给它的内容。在您的情况下,它正在交换 it1it2 本身,而不是它们“指向”的内容。您可以使用 std::iter_swap()而是交换两个迭代器“指向”的内容。

关于c++ - 为什么 swap() 函数不能与 vector 的迭代器一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52070231/

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