读书人

[新手上路]请教个关于容器的有关问题

发布时间: 2012-02-20 21:18:24 作者: rapoo

[新手上路]请问个关于容器的问题!
C++中的vector用法

int size = 10;
int value = 0;
vector <int> ivec(size,value);

这样定义的ivec是等价于ivec[10] = {0};的吧?

如何把ivec内的元素一一显示出来?

vector有变长机制?如何理解,能否提供个简单事例说名下?

[解决办法]
我写了些代码, 你编译运行了测试下.

// test2.cpp
// vs2003 c++
// cl -EHsc test2.cpp

#include <iostream>
#include <algorithm>
#include <vector>
int main() {
int is[10] = { 1 };
std::cout < < "array\n ";
std::copy(&is[0], &is[10], std::ostream_iterator <int> (std::cout, " "));
std::cout < < std::endl;

std::vector <int> ivs(10, 1);
std::cout < < "vector\n ";
std::copy(ivs.begin(), ivs.end(), std::ostream_iterator <int> (std::cout, " "));
std::cout < < std::endl;

std::cout < < "ivs count + 1\n ";
ivs.push_back(100);
std::copy(ivs.begin(), ivs.end(), std::ostream_iterator <int> (std::cout, " "));
std::cout < < std::endl;

return 0;
}

1. int ivec[10] = {0};只初试化第一个, 而非全部.
std::vector <int> ivec(10, 1); 则全部初始化.

2. 如何把ivec内的元素一一显示出来? 可以选择
ivec[0] // ivec[index]
ivec.at(0) // ivec.at(index) 这个是带检查的, index越界会抛异常
还可以通过迭代器

3. vector有变长机制?如何理解,能否提供个简单事例说名下? 我代码里举了个例子.

[解决办法]
C++ primer上有实例的。。。很详细 讲得更详细

自己去看下吧,没书的话给邮箱发你

读书人网 >C++

热点推荐