一、vector使用
头文件:#include
using std::vector;
vector是一个类模版,而不是具体的类型。通过将类型放在类模版的<>里面,来指定类型。
如:vector ivec; //类型:vector,变量名:ivec
vector Sales_vec;
二、vector对象的定义和初始化
初始化vector
vector v1; vector保存类型为T对象。
vector v1(v2); v2是v1的一个副本。v3包含
vector v3(n,i); v3包含n个值为i的元素。
vector v4(n); v4包含值初始化的元素的n个副本。
注意:复制vector对象时,两个vector必须保存同一种类型。
如:vector ivec1;
vector ivec2(ivec1);
三、值初始化
如果未指定初始化值,由vector中元素的数据类型决定,如int为0,string将使用该类型的默认构造函数
创建元素初始化式。
四、vector对象操作
v.empty(); //如果为空,返回true
v.size(); //v中元素个数
v.push_back(t); //在末尾增加一个值为t的元素
v[n]; //返回v中位置为n的元素
v1 = v2; //把v1的元素替换为v2中元素的副本
v1 == v2; //如果v1和v2相当,则返回true
!=,<,<=,>,and >=
五、vector对象的size
成员函数size返回相应vector类定义的size_type值
vector::size_type //0k
vector::size_type //error
六、向vector中添加元素
string word;
vector text;
text.push_back(word);
七、vector下标操作
如:reset all elements to zero in the vector
for (vector::size_type ix = 0; ix != ivec.size(); ++ix)
{
ivec[ix] = 0;
}
八、下标操作不能添加元素
vector ivec; // 空的vector
for (vector::size_type ix = 0; ix != 10; ++ix)
{
ivec[ix] = ix; //错误
}
警告:仅对确知已存在的元素进行下标操作。
九、迭代器简介
容器的iterator类型:如 vector::iterator iter;
该语句定义了一个名为iter的变量,它的数据类型是vector定义的iterator类型。
每种容器都定义了一对命名为begin和end的函数,用于返回迭代器。如果容器中有元素的话,
由begin返回的迭代器指向第一个元素。
vector::iterator iter = ivec.begin();
如果vector不为空,则iter指向元素ivec[0];
由end操作返回的迭代器指向vector的末端元素的下一个。表明它指向了一个不存在的元素。
如果vector为空,则begin返回的迭代器和end返回的相同。
十、vector迭代器的自增和解引用运算
迭代器类型使用解引用操作符,“*”来访问迭代器所指向的元素:
*iter = 0;
即 *iter 和 ivec[0] 指向同一元素。
迭代器移动: iter++;
//迭代器操作
for (vector::iterator iter = ivec.begin(); iter != ivec.end(); ++iter)
{
*iter = 0;
}
//下标操作
for (vector::size_type ix = 0; ix != ivec.size(); ++ix)
{
ivec[ix] = 0;
}
十一、const_iterator
该类型只能用于读取容器中的元素,不能修改。
阅读(660) | 评论(0) | 转发(0) |