vector删除遍历

 1 #include <iostream>
 2 #include <vector>
 3 #include <string>
 4
 5 using namespace std;
 6
 7 int main(void)
 8 {
 9     vector<string> vecStr;
10     vecStr.push_back("hello");
11     vecStr.push_back("world");
12     vecStr.push_back("welcome");
13     vecStr.push_back("good");
14     vecStr.push_back("boy");
15
16     for(vector<string>::iterator iter = vecStr.begin(); iter != vecStr.end(); ++iter)
17     {
18         cout << (*iter) << endl;
19     }
20     cout << "----------------------" << endl;
21
22     for(vector<string>::iterator iter = vecStr.begin(); iter != vecStr.end(); ++iter)
23     {
24         cout << "execute item: " << (*iter) << endl;
25         if("welcome" == (*iter))
26         {
27             // vector在删除元素后,返回迭代器指向下一个元素(windows STL和linux STL均支持)
28             iter = vecStr.erase(iter);
29             --iter;
30         }
31     }
32     cout << "----------------------" << endl;
33     for(vector<string>::iterator iter = vecStr.begin(); iter != vecStr.end(); ++iter)
34     {
35         cout << (*iter) << endl;
36     }
37
38 }
1     for(vector<string>::iterator iter = vecStr.begin(); iter != vecStr.end(); ++iter)
2     {
3         cout << "execute item: " << (*iter) << endl;
4         if("welcome" == (*iter))
5         {
6             // window和linux均支持
7             vecStr.erase(iter--);
8         }
9     }
时间: 2024-10-16 12:45:19

vector删除遍历的相关文章

map和vector删除遍历

1 #include <iostream> 2 #include <string> 3 #include <map> 4 5 using namespace std; 6 7 int main(int argc, char* argv[]) 8 { 9 map<string, string> mapData; 10 11 mapData["a"] = "aaa"; 12 mapData["b"] =

Vector 删除元素

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

hdu5336 XYZ and Drops (模拟+vector删除第i个元素)

题目链接: hdu5336 XYZ and Drops 模拟题一道,比较水,但是因为题意曲折 顺带vector的删除操作也是不太明白 总之逗了很长时间 删除第i个元素 v.erase(v.begin() + i); 删完后后面的元素都会往前移一个,所以下一个元素还是v[i] 也可以下面这样 it = v.erase(it); //erase()返回值是指向下一个元素的指针 //#define __LOCAL //#define __LLD #include <stdio.h> #include

vector删除操作 erase方法注意事项

vector使用十分方便,可以存放任意类型数据结构.有时候我们会在vector中存放对象指针等,在删除某个元素的时候,我们还需要释放相应的内存. 本文主要谈一下erase方法,尤其是在循环体中使用erase方法,需要注意是否存在隐性问题. erase的函数原型有两种形式: iterator erase(iterator position); iterator erase(iterator first, iterator last); 例如有一个类A, class A { public:     

实战c++中的vector系列--vector的遍历(stl算法、vector迭代器(不要在循环中判断不等于end())、operator[])

遍历一个vector容器有很多种方法,使用起来也是仁者见仁. 通过索引遍历: for (i = 0; i<v.size(); i++) { cout << v[i] << " "; } 迭代器遍历: for (vInt::const_iterator iter = v.begin(); iter != v.end();iter++) { cout << *iter << " "; } 算法遍历: copy(v.b

C++ vector 删除一个元素

#include <vector> using namespace std; void main(void) { vector<int> array; array.push_back(1); array.push_back(2); array.push_back(3); array.push_back(4); array.push_back(5); vector<int>::iterator itr = array.begin(); while (itr != arra

链表_有序链表(插入删除遍历)

插入的节点位置有两种情况,一是有previous节点,而是没有previous节点 //链结点 public class Link { public long dData; public Link next; public Link(long dd) { dData=dd; } public void displayLink() { System.out.print(dData+" "); } } public class SortedList { private Link first

set vector 删除重复元素

1 #include <iostream> 2 #include<cstdio> 3 #include <vector> 4 #include <set> 5 #include <iterator> 6 using namespace std; 7 8 int main() 9 { 10 set<int>s; 11 cout << "please input the number of vector's elem

vector的几种初始化和遍历

随着C++11标准的出现,vector出现了新的初始化和遍历用法,但是vs2010和较高版本并没有能完全支持C++11标准,所以我就将它的所有的用法归纳了一下. vector的初始化 vector基本初始化如下: vector< T >v1 v1是一个空的vector vector< T >v2(v1) v2包含v1所有元素,等价于vector v2=v1; vector< T >v3(n,val) v3包含了n个重复元素,每个元素是val 在C++11标准中出现了下面