vector和list删除元素

 1 #include <iostream>
 2 #include <vector>
 3 #include <list>
 4 using namespace std;
 5
 6 int main()
 7 {
 8     int ia[] = { 0, 1, 1, 2, 3, 5, 8, 13, 21, 55, 89 };
 9     vector<int> ivec(ia, ia + 11);
10     list<int> ilist(ia, ia + 11);
11
12     //删除vector中的偶数
13     for (auto iter = ivec.begin(); iter != ivec.end();)
14     {
15         if (*iter % 2 == 0)
16             iter = ivec.erase(iter);
17         else
18             ++iter;
19     }
20
21     //删除list中的奇数
22     for (auto iter = ilist.begin(); iter != ilist.end();)
23     {
24         if (*iter % 2 == 1)
25         {
26             iter = ilist.erase(iter++);
27         }
28         else
29             ++iter;
30     }
31
32     for (auto i : ivec)
33     {
34         cout << i << ‘ ‘;
35     }
36
37     for (auto i : ilist)
38     {
39         cout << i << ‘ ‘;
40     }
41     system("pause");
42 }

时间: 2024-10-22 22:35:25

vector和list删除元素的相关文章

C++ vector中实际删除元素使用的是容器vecrot中std::vector::erase()方法

C++ vector中实际删除元素使用的是容器vecrot中std::vector::erase()方法. C++ 中std::remove()并不删除元素,因为容器的size()没有变化,只是元素的替换. 1.std::vector::erase() 函数原型:iterator erase (iterator position); //删除指定元素 iterator erase (iterator first, iterator last); //删除指定范围内的元素 返回值:指向删除元素(或

STL进阶--删除元素

删除元素 从vector或deque删除元素 vector<int> vec = {1, 4, 1, 1, 1, 12, 18, 16}; // 删除所有的1 for (vector<int>::iterator itr = vec.begin(); itr != vec.end(); ++itr) { if ( *itr == 1 ) { vec.erase(itr); //你或许会想到使用erase成员函数 } } // 的确,是可以达到目的 vec: { 4, 12, 18,

vector的应用(元素遍历、插入、删除、交换等)

这里主要是对vector容器的一些常见应用的总结.至于vector的构造函数及初始化可以参考http://blog.csdn.net/lsh_2013/article/details/21191289,这里不再赘述. 元素的遍历 用迭代器访问vector元素 #include <vector> #include <iostream> using namespace std; int main(void) { vector<int> v; v.push_back(42);

删除vector中的偶数元素,删除list中的奇数元素

#include<vector> #include<list> #include<iostream> using namespace std; int main() { vector<int> vec={0,1,1,2,3,5,8,21,55,89}; list<int> li={0,1,1,2,3,5,8,21,55,89}; auto ve=vec.begin(); auto it=li.begin(); while(ve!=vec.end(

vector容器中添加和删除元素

添加元素: 方法一: insert() 插入元素到Vector中 iterator insert( iterator loc, const TYPE &val ); //在指定位置loc前插入值为val的元素,返回指向这个元素的迭代器 void insert( iterator loc, size_type num, const TYPE &val ); //在指定位置loc前插入num个值为val的元素 void insert( iterator loc, input_iterator

vector 之删除元素

删除指定位置的元素 删除vector中第5个位置的元素 1 vector<int> vec; //执行vector初始化操作 2 vector<int>::iterator iter=vec.begin()+5; //获取第五个元素的iterator 3 vec.erase(iter); //删除第五个元素 删除重复元素 删除vector中的重复元素 1 vector<int> vec; //执行vector初始化操作 2 sort(vec.begin(), vec.e

Vector 删除元素

数据结构上机测试1:顺序表的应用 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 在长度为n(n<1000)的顺序表中可能存在着一些值相同的"多余"数据元素(类型为整型),编写一个程序将"多余"的数据元素从顺序表中删除,使该表由一个"非纯表"(值相同的元素在表中可能有多个)变成一个"纯表"(值相同的元素在表中只能有一个). 输入 第一行输入表的长度n:

STL容器遍历时删除元素

STL容器遍历时在循环体内删除元素最容易出错了,根本原因都是因为迭代器有效性问题,在此记下通用删除方法,该方法适用于所有容器: 1 std::vector<int> myvec; 2 3 std::vector<int>::iterator it = myvec.begin(); 4 while( it != myvec.end()) 5 { 6 it = myvec.erase(it); 7 } 容器list有个比较另类的删除方法,如下代码所示: std::list<int

STL中用erase()方法遍历删除元素?.xml

pre{ line-height:1; color:#f0caa6; background-color:#2d161d; font-size:16px;}.sysFunc{color:#e54ae9;font-style:italic;font-weight:bold;} .selfFuc{color:#f1f9be;} .bool{color:#69305e;} .condition{color:#628698;font-weight:bold;} .key{color:#e336b6;} .