您的位置:首页 > 编程语言 > C语言/C++

2012年3月9日C++学习笔记

2012-03-09 10:49 162 查看
1. vector<int> ivec;

ivec[0]=42; //错误。因为ivec是空的vector对象,其中不含任何元素,而下标只能用于获取已存在的元素。

更正:将赋值语句改为语句ivec.push_back(42)

2. 列出三种定义 vector 对象的方法,给定 10 个元素,每个元素值为 42。指出是否还有更好的实现方法,并说明为什么。

方法一:

vector<int> ivec(10, 42);

方法二:

vector<int> ivec(10);

for (ix = 0; ix < 10; ++ix)

ivec[ix] = 42;

方法三:

vector<int> ivec(10);

for (vector<int>::iterator iter = ivec.begin();

iter != ivec.end(); ++iter)

*iter = 42;

方法四:

vector<int> ivec;

for (cnt = 1; cnt <= 10; ++cnt)

ivec.push_back(42);

方法五:

vector<int> ivec;

vector<int>::iterator iter = ivec.end();

for (int i = 0; i != 10; ++i) {

ivec.insert(iter, 42);

iter = ivec.end();

}

各种方法都可达到目的,也许最后两种方法更好一些。它们使用标准库中定义

的容器操作在容器中增添元素,无需在定义 vector 对象时指定容器的大小,比

较灵活而且不容易出错。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: