STL迭代器之向量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STL迭代器之向量相关的知识,希望对你有一定的参考价值。

当使用输入迭代器的时候,也就是直接用迭代器(指针)输入的时候一定要指定容器的大小,否则在运行时出错。可能是不指定大小就不好分配地址,就会出错吧。这都是我自己的一些猜想,很可能是错的,或不严谨。

但是在使用容器的成员函数进行写入、插入时就可以不指定向量容器大小。例如iVect.push_back(520)。

#include<iostream>
#include<vector> //包含STL向量模板头文件
#include<algorithm> //包含STL算法头文件
using namespace std;
//如果不声明命名std空间那么endl就必须写成std::endl;
//向量的定义就是std::vector<int> iVector;这就是命名空间的作用

void Display(int val)
{
cout<<val<<\'\\t\';
}
int main()
{
vector<int> iVect(4); //当不指定向量的大小的,会在运行时出错
vector<int>::iterator it = iVect.begin();
*it++ = 5;
*it++ = 2;
*it++ = 0;
*it = 1314;
for_each(iVect.begin(), iVect.end(), Display); //这是STL算法中的一个函数相当于一个循环语句
return 0;

}

#include<iostream>
#include<vector> //包含STL向量模板头文件
#include<algorithm> //包含STL算法头文件
using namespace std;
//如果不声明命名std空间那么endl就必须写成std::endl;
//向量的定义就是std::vector<int> iVector;这就是命名空间的作用

void Display(int val)
{
cout<<val<<\'\\t\';
}
int main()
{
vector<int> iVect(4); //当不指定向量的大小的,会在运行时出错
iVect[0] = 5;
iVect[1] = 2;
iVect[2] = 0;
iVect[3] = 1314;

for_each(iVect.begin(), iVect.end(), Display); //这是STL算法中的一个函数相当于一个循环语句
return 0;
}

以上是关于STL迭代器之向量的主要内容,如果未能解决你的问题,请参考以下文章

如何从 STL 类“继承”迭代器?

Python三大器之迭代器

python三大器之迭代器

通过指针擦除 STL 向量

python 迭代器之chain

使用迭代器和向量的插入排序实现