//头文件
#include<vector>
using std::vector;
vector<T> v1;
vector<T> v2(v1);
vector<T> v3(n,i);
vector<T> v4(n);
//创建确定个数的vector对象
vector<int> ivec4(10,-1);
vector<string> ivec4(10,"hi!");
//值初始化
//如果没有指定元素初始化,那么标准库将个自行提供一个元素初始值进行值初始化,如:vector保存内置类型(int)的元素,那么标准库将用0值创建元素舒适化式;
//如果保存的是有构造函数类型的元素,标准库将用改类型的默认构造函数创建元素初始化式;
//vector对象操作
v.empty()//如果v为空则返回true,否则返回false。
v.size()//返回v中元素的个数
v.push_back(t)//在v的末尾增加一个值为t的元素
v[n]//返回v中位置为n的数
v1=v2 // 把v1的元素替换为v2中元素的副本;
vi==v2 // 如果v1与v2相等则返回true
!=<<=>>=保持这些操作符惯有的含义
//vector对象的size
//使用size_type 时必须指出该类型是在哪里定义的
vector<int>::size_type
//向vector中添加元素
push_back()//将一个新元素添加到vector对象的后面
//vector的下标操作
for(vector<int>::szie_type ix=0; ix!=ivec.size(); ix++)
{
ivec[ix]=0;
}
//下标操作不能添加元素只能通过 push_back();下标操作仅能对已存在的元素进行下标操作
//vector迭代器
//标准库为每种标准容器定义了一种迭代器类型,所有的标准库迭代器都定义了相应的迭代器类型,而只有少数的容器支持下标操作
//容器的iterator类型
vector<int>::iterator iter;
//数据类型:由vector<int>定义的iterator类型。
//begin 和end操作
//每种容器都定义了一对命名为begin和end的函数,用于返回迭代器
vector<int>::iterator iter= ivec.begin();
//把iter初始化为由名为begin的vector操作返回值的值。及iter指该元素为ivec[0].
//vectror的自增和解引用运算
//迭代器类型使用解引用操作符(*操作符)来访问迭代器所指元素:
*iter=0;
++iter //指向第二个元素
//由于end操作返回的迭代器不指向任何一个元素,因此不能进行自增和解引用操作
//其他操作
==!=
//应用程序示例
for(vector<int>::iterator iter=ivec.gebin(); iter!=ivec.end();++iter)
{
*iter =0;
}
//const_iterator
//const_iterator自身的值可以改变,但不能改变其所指向的元素的值,可以对迭代器进行自增及解引用操作来读取值,但不能对该元素进行赋值
//const_iterator和const的iterator对象不一样
//声明一个const迭代器必须初始化,一旦初始化后就不能改变其值
vector<int> nums(10);
cosnt vector<int>::iterator cit= nums.begin();
*cit=1;//初始化
++cit;错不能改变cit的值
//迭代器的算术操作
iter +n
iter - n
posted @
2017-01-04 14:45
feizuzu
阅读(
6626)
评论()
编辑
收藏
举报