|
发表于 2021-2-19 14:45:08
|
显示全部楼层
今儿跟你说几句你不乐意听的实话,你的帖子为什么没什么人愿意回答的原因,有以下几点:
1、你的帖子问的都是一些很基础的东西,MSDN、CSDN、各种网站一大堆资料。
2、你的帖子中有人给你解答,你有没有得到解决,你也没个回复。
3、你的帖子中似乎没有出现过最佳答案,或许你也不知道哪个是最佳答案!
- #include <list>
- #include<iostream>
- using namespace std;
- int main()
- {
- int a[] = { 1, 4,3,7,9,3,6,8,3,5,2,3,7 };
- list<int> b(a, a + sizeof(a) / sizeof(int));
- for (auto it = b.begin(); it != b.end(); it++)
- cout << *it << " ";
- cout << endl;
- /*b.erase(b.begin());
- b.erase(b.begin(), b.end());*/
- for (auto it = b.begin(); it != b.end(); ++it)
- {
- if (*it == 3)
- {
- b.erase(it);
- // 循环中 erase 只能操作一次, 因为 erase 之后,it指向的地址已被擦除而指向不确定的地址,再次++操作将抛出异常
- // 要删除list中所的重复的元素只需正常执行一次remove即可,而不是在循环中。
- break;
- }
- }
- for (list<int>::iterator it = b.begin(); it != b.end(); it++)
- cout << *it << " ";
- cout << endl;
- return 0;
- }
复制代码 |
|