[新手上路]请教个关于容器的有关问题
[新手上路]请问个关于容器的问题!
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++中的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上有实例的。。。很详细 讲得更详细
自己去看下吧,没书的话给邮箱发你