20180517 迭代器
Posted Kxzh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20180517 迭代器相关的知识,希望对你有一定的参考价值。
下列代码的输出为:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
#include<iostream> #include<vector> using namespace std; int main( void ) { vector< int >array; array.push_back( 100 ); array.push_back( 300 ); array.push_back( 300 ); array.push_back( 500 ); vector< int >::iterator itor; for (itor = array.begin(); itor != array.end(); itor++) { if (*itor == 300 ) { itor = array.erase(itor); } } for (itor = array.begin(); itor != array.end(); itor++) { cout << *itor << " " ; } return 0 ; } |
100 300 300 500
100 300 500
100 500
程序错误
答案B 错选C
erase()一次只删除一个元素,返回一个迭代器指针,指向下一个元素。本题中,删除第一个300后,itor指向其后一个300,再通过itor++就指向了500.
vector 的erase函数 删除指定位置的元素时, 返回值是一个迭代器,指向删除元素下一个元素。删除第一个300后,itor指向其后的300,然后执行itor++,指向了500
以上是关于20180517 迭代器的主要内容,如果未能解决你的问题,请参考以下文章