#include<iostream>
#include<vector>
using namespace std;
void PrintVector(vector<int> v)
//vector不是一种数据类型只是一个类模板,vector<int>才是一种数据类型
{
cout<<"Print Called !"<<endl;
for(vector<int>::const_iterator iter=v.begin();iter!=v.end();iter++)
//const_iterator类型只能用于读取容器内的元素但不能改变其值
cout<<*iter<<" ";
cout<<endl;
}
int main()
{
vector<int>intbox;
int t;
while(cin>>t)
intbox.push_back(t);
cout<<"迭代器访问"<<endl;
for(vector<int>::iterator iter=intbox.begin();iter!=intbox.end();iter++)
//end操作返回的迭代器并不指向vector中的任何实际元素,他只是一个哨兵(sentinel)
cout<<*iter<<" ";
cout<<endl;
cout<<"下标访问"<<endl;
//下标只能用来获取已知的元素
//不能用来改变元素值
for(int i=0;i<intbox.size();i++)
//size()这样的小库函数一般都定义为内联函数运行时代价是比较小的
cout<<intbox[i]<<" ";
cout<<endl;
//初始化
//内置类型用0值初始化
//带构造函数的用默认构造函数初始化
vector<int>v1(intbox);
PrintVector(v1);
vector<int>v2(10,0);//10个0
PrintVector(v2);
vector<int>v3(6);//6个初始值
PrintVector(v3);
//
const vector<int>nines(10,9);//const的容器类型不能改变容器内的元素的值
PrintVector(nines);
const vector<int>::iterator iter1=intbox.begin();//const的iterator对象,不能改变值
//iter1++;不能实现该操作
vector<int>::const_iterator iter2=nines.begin();
//*iter2=3;不能实现该操作
iter2++;
system("pause");
return 0;
}
C++ Primer_基本语言_标准库类型_容器迭代器
最新推荐文章于 2023-04-12 21:19:45 发布