首页 服务器 编程 必备知识 搜索引擎 圩日手册
站内搜索
最近浏览
推荐文章
热文排行

C++里的vector数组用法


vector 抽象容器类型之一(还有list和deque等),与其他几中容器类型不同的是它高效支持随机访问其中的元素。
使用vector,首先必须调用头文件(#include <vector>)

它的声明和初始化是这样的
vector <类型名> 变量名
vector <int> vi = ( 10 , 1 ) //初始化为10个元素的vector,每个元素都为1

push_back()的用法是将元素插入vector容器的最尾部
举个例子
vector <int> vi;
int a[4] = { 0, 1, 2, 3};
for ( int i = 0; i<=4; ++i )
vi.push_back(a[i]);

此时vi就是0 1 2 3
如果改成
vi.push_front( a[i] );
vi就是 3 2 1 0
参考资料:C++ Primer

vector是STL的一种,既然是“模版”,那么它就能存储复杂数据类型。
__________________________________________________
class complex_struct
{
int a;
char b;
string c;
struct d
{
int a;
}
...
}
__________________________________________________
以上这个类存在vector中没问题,但数组就完不成,链表可以,那你不是要自己完成吗,这样一来,它具有了链表的可扩充性和数组的操作灵活性。而且它是标准的,这样你就直接可以用。
另外,它是一个标准类,那么它就有了自己destructor,你不必为“内存泄露”担心了,链表可是需要你随时考虑释放资源的。只要你的程序结束了,destructor自动回收资源。至于道理吗和auto_ptr是一样的。
__________________________________________________
一种可以存储复杂数据类型而不需要你考虑资源释放的类(而且是现成的)。
特点是方便快捷,当然这还包括一些适配器的构成,其实和指针道理差不多,只是step多少的问题。
以上是我的理解,可以用的,你拿去,不能用的,就留下。

[wangjy17908]
添加时间:2008-03-07
版权所有(C)2005-2015