小记:iterator && auto

小记:iterator && auto

iterator

众所周知,我们有一种强大的东西,它叫做STL,比如queuevectorsetmapmultimapdeque等。

如果我们想遍历整个空间,但是我们发现有些STL中没有operator[],也就是说无法通过正常的...[......]来访问所有元素。所以我们引入了这个东西——iterator。

它的标准形式为*::iterator **其中,*是你的定义类型,**是你的迭代器名称。

那么怎么食用呢?如下是一个最简单的板子:

#include <bits/stdc++.h>
using namespace std;

vector<int>::iterator it;
vector<int> vec;

int main(){
    for (int i = 0; i ^ 10; i++)
        vec.push_back(i);
    for (it = vec.begin(); it != vec.end(); it++)
        cout << *it << ' ';
}

其它的妙用,就大家来使用叭。。。。。。

auto

你是否想根据后面的变量让电脑自动定义它的类型?那么你就找对了。

auto就是用来干这个的。

比如,刚才的代码完全可以改为这样:

#include <bits/stdc++.h>
using namespace std;

vector<int> vec;

int main(){
    for (auto i = 0; i ^ 10; i++)
        vec.push_back(i);
    for (auto it = vec.begin(); it != vec.end(); it++)
        cout << *it << ' ';
}

你不用管it到底是啥类型,定义它就好了。

需要注意的是,auto定义变量时,需要直接赋东西给变量。。。。。。

posted @ 2019-10-23 10:36  fxk4_p  阅读(445)  评论(0编辑  收藏  举报