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 迭代器的主要内容,如果未能解决你的问题,请参考以下文章

20180517 程序运行速度

有没有办法在片段着色器中使用先前渲染的结果?

20180517早课记录12-Hadoop

javascript 期386:20180517 - no74。ナビゲーションメニュー改修

oracle中clob字段怎么查询非空列_20180517

VSCode自定义代码片段——CSS选择器