您的位置:首页 > 其它

vector 向量容器基础应用

2010-12-15 19:34 183 查看

S T L

Vector向量容器介绍

Vector容器是一个线性结构,用三个指针存放向量的起始字节位置、当前最后一个向量元素的末尾字节和整个容器所占用的内存空间的末尾字节。
C++标准头文件vector:宏语句
l 创建vector对象
1)
Vector(const A&a = A() )
创建一个空的vector对象,A是内存分配器,此参数可以省略

vector<int> v; //空的int型vector对象

2)
Vector(size_type n)
创建一个具有n个元素的vector对象
vector<int> v(10); //具有10个元素的int型vector对象
3)
Vector(size_type n,const T&
value)
创建一个具有 n个元素的vector对象,每个元素都有初始值value
Vector<int>
v( 10, 0); //具有十个初始值为0的int型vector对象
4)
Vector( const vector&)
拷贝一个vector对象,创建一个新的vector对象
Vector<char> v1(5, ‘k’);
Vector<char> v2(v1);
5)
Vector(const InputIterator first,const
InputIterator last,const A&a = A() )
Inputiterator 为输入迭代器,拷贝迭代器区间[ first,last ) 的元素值,创建新的vector对象
Int iarray [] = {11,13,19,23,27};
Vector<int> v(iarray , iarray + 5);
l 初始化赋值
push_back 函数在容器的尾端插入新元素value
void push_back(const
T& value)
l 元素的遍历访问
Vector的元素可采用数组或迭代器的方式进行遍历访问。
#include <iostream>
#include <vector>

using namespace std;

int main()
{
vector<int> v;
v.push_back(23);
v.push_back(15);
v.push_back(38);

//数组方式遍历vector
for(int i = 0;i<v.size();i++)
cout<<v[i]<<" ";
cout<<endl;

//迭代器方式遍历vector
vector<int>::iterator i;
for(i = v.begin();i != v.end();i++)
cout<<*i<<" ";
cout<<endl;

return 0;
}

l 元素的插入
Insert 函数
在迭代器pos所指元素前面插入一个元素x
Iterator insert (iteratror pos,const
T& x)
l 元素的删除
Erase函数 在迭代器pos所指区间[first , last)的所有元素
1)
Iterator erase (iterator pos)
2)
Iterator erase(iterator
first, iterator last)
l 元素的反向遍历
利用vector提供的反向迭代器及相应函数
1)
Reverse_iterator rbegin()
2)
Reverse_iterator rend()
l Vector的交换
利用swap算法,实现两个vector容器元素的交换
Void swap( vector &)
#include <iostream>
#include <vector>

using namespace std;

int main()
{
vector<int> v;
v.push_back(23);
v.push_back(15);
v.push_back(38);
//反向遍历
vector<int>::reverse_iterator i;
for(i = v.rbegin();i != v.rend();i++)
cout<<*i<<" ";
cout<<endl;
//插入元素
v.insert(v.begin()+2,59);
//删除元素
v.erase(v.begin()+1);
v.erase(v.begin(),v.end());
return 0;
}

l 其他常用函数
1)
bool empty()
判断容器是否为空。
2)
Size_type size()
当前容器实际元素个数。
3)
Size_type max_size()
容器的最大元素个数。
4)
Size_type capacity()
可容纳元素个数。
5)
Reference front()

容器首元素,前提不为空。
6)
Reference back()
容器末尾元素,前提不为空。
7)
Void pop_back()

删除容器末尾的一个元素。
8)
Void reverse(size_type n)
手动调整vector数据空间大小。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: