一、创建vector对象
1、vector<int> ival; 创建一个空的整形的容器对象ival。
2、vector<int> ival(n);创建一个具有n个元素的整形vector对象。
3、vector<int> ival(n,value);创建一个具有n个元素的vector对象,每个对象初始值为value。
4、vector<char> ival1(ival2);通过拷贝一个vector对象的各个元素值,创建一个新的vector对象。eg:vector<char> v1(5,'a');vector<char> v2(v1);
5、vector<int> ival(const inputeriterator first , const inputeriterator last) ; inputeriterator为输入迭代器,通过拷贝迭代器区间[ first,last)的元素值,创建一个新的vector对象。
eg:int iArray[] = {1,2,3,4,5,6,7,8,9} ; vector<int> ival( iArray , iArray+5);
二、初始化赋值
vector提供push_back函数来对vector对象进行赋值和初始化。格式为 ival.push_back(const T& value)
三、元素的遍历访问(假设我们已定义了一个整形vector对象ival)
1、利用数组方式访问
print(vector<int>& ival))
{
for(int i =0;i<ival.size();i++)
{
cout<<ival[i]<<endl;
}
}
2、利用迭代器方式访问
print(vector<int>& ival))
{
for(vector<int>::iterator i =ival.begin() ; i != ival.end();i++)
{
cout<< *i <<endl;
}
}
备注:ival.begin()返回ival的首元素地址,ival.end()返回ival的尾元素地址+1.级访问的有效区间是 [ ival.begin(),ival.end())
四、元素的插入
ival.insert(iterator pos,const T& x); 即在pos后面将元素x插入
ival.insert(ival.begin()+5,9) 在ival.begin()+5这个位置后面讲9插入到ival中
五、元素的删除
iterator erase(iterator pos) 删除元素地址为pos的元素。
iterator erase(iterator first , iterator last) 删除元素地址区间为[ first , last]的所有元素。
void clear() 清除所有vector元素。
六、元素的反向遍历
反向迭代器 reverse_iterator
reverse_iterator rbegin()
reverse_iterator rend()
通过rbegin()和rend()可以对vector容器的元素。
print(vector<int>& ival))
{
for(vector<int>::reverse_iterator i =ival.rbegin() ; i != ival.rend();i++)
{
cout<< *i <<endl;
}
}
七、vector的交换 vector<int> ival1,ival2 ;
交换函数 void swap(vector&)
将ival1,ival2交换的具体调用方式有两种
1、ival1.swap(ival2);
2、swap(ival1 , ival2)
八、其他常用函数
1、bool empty() 判断vector容器是否为空,具体调用为ival.empty() 。
2、size_type size() 当前vector容器的十几元素个数,具体调用为ival.size() 。
3、size_type max_size() 系统所允许的vector容器最大元素个数,具体调用为ival.max_size() 。
4、size_type capacity() 当前容器可容纳的元素个数,具体调用为ival.capacity() 。
5、reference back() ; 返回vector容器的末元素(引用),要求vector不为空,具体调用为ival.back() 。
6、reference front() ; 返回vector容器的首元素(引用),要求vector不为空,具体调用为ival.front() 。
7、void pop_back() ; 和push_back()相反的函数,pop_back用于删除末尾一个容器的元素,具体调用为ival.pop_back() ;
今天第一次自己写博客,感觉挺好的,其他容器后面会慢慢的推出哈。
欢迎广大C++爱好者(特别是STL方面的)光临陋室进行点拨拍砖。哈哈