STL中Vector的使用方法详解
2011-09-19 00:21
567 查看
转载自:http://blog.sina.com.cn/s/blog_5cf5e7c40100boiu.html
//VectorDemo.cpp : 定义控制台应用程序的入口点。
//Visual C++ 6.0 中编译通过
# include <iostream>
# include <vector>
using namespace std;
typedef vector<int> INTVECTOR;
void PrintIntVector(INTVECTOR iVector)
{
//遍历vector方法
cout<<"Vector: [";
for(INTVECTOR::iterator it = iVector.begin(); it != iVector.end(); it++)
{
cout<<*it;
if(it != iVector.end()-1)
{
cout<<",";
}
}
cout<<"]"<<endl;
}
int main(int argc, char* argv[])
{
INTVECTOR iVector;
//push_back方法
iVector.push_back(2);
iVector.push_back(3);
iVector.push_back(4);
iVector.push_back(1);
iVector.push_back(10);
iVector.push_back(20);
PrintIntVector(iVector);
//Vector: [2,3,4,1,10,20]
//pop_back方法
iVector.pop_back();
PrintIntVector(iVector);
//Vector: [2,3,4,1,10]
//size、capacity 与 max_size方法
cout<<"size="<<iVector.size()<<" capacity="<<iVector.capacity()<<" max_size="<<iVector.max_size()<<endl;
//size=5 capacity=6 max_size=1073741823
//reserve方法
iVector.reserve(20);
cout<<"After reserve: size="<<iVector.size()<<" capacity="<<iVector.capacity()<<" max_size="<<iVector.max_size()<<endl;
//After reserve: size=5 capacity=20 max_size=1073741823
//resize方法
iVector.resize(100);
cout<<"After resize: size="<<iVector.size()<<" capacity="<<iVector.capacity()<<" max_size="<<iVector.max_size()<<endl;
//After resize: size=100 capacity=100 max_size=1073741823
//begin方法
iVector.resize(5);//修改为5
INTVECTOR::iterator iter;
iter = iVector.begin();
cout<<"First element:"<<*iter<<endl;
//First element:2
//insert方法
//PrintIntVector(iVector);
iter = iVector.insert(iter, 65);
iVector.insert(iter+1, 2, 30);
iVector.insert(iVector.end(), iVector.begin(), iVector.end());//复制
PrintIntVector(iVector);
//Vector: [65,30,30,2,3,4,1,10,65,30,30,2,3,4,1,10]
//at方法
cout<<"Fifth element:"<<iVector.at(4)<<endl;
//Fifth element:3
//front 和 back方法
cout<<"First element: "<<iVector.front()<< endl;
cout<<"Last element: "<<iVector.back()<< endl;
//First element: 65
//Last element: 10
//erase方法
iVector.erase(iVector.begin());
PrintIntVector(iVector);
//Vector: [30,30,2,3,4,1,10,65,30,30,2,3,4,1,10]
//reverse_iterator使用方法
INTVECTOR::reverse_iterator riter;
riter = iVector.rbegin();
//VectorDemo.cpp : 定义控制台应用程序的入口点。
//Visual C++ 6.0 中编译通过
# include <iostream>
# include <vector>
using namespace std;
typedef vector<int> INTVECTOR;
void PrintIntVector(INTVECTOR iVector)
{
//遍历vector方法
cout<<"Vector: [";
for(INTVECTOR::iterator it = iVector.begin(); it != iVector.end(); it++)
{
cout<<*it;
if(it != iVector.end()-1)
{
cout<<",";
}
}
cout<<"]"<<endl;
}
int main(int argc, char* argv[])
{
INTVECTOR iVector;
//push_back方法
iVector.push_back(2);
iVector.push_back(3);
iVector.push_back(4);
iVector.push_back(1);
iVector.push_back(10);
iVector.push_back(20);
PrintIntVector(iVector);
//Vector: [2,3,4,1,10,20]
//pop_back方法
iVector.pop_back();
PrintIntVector(iVector);
//Vector: [2,3,4,1,10]
//size、capacity 与 max_size方法
cout<<"size="<<iVector.size()<<" capacity="<<iVector.capacity()<<" max_size="<<iVector.max_size()<<endl;
//size=5 capacity=6 max_size=1073741823
//reserve方法
iVector.reserve(20);
cout<<"After reserve: size="<<iVector.size()<<" capacity="<<iVector.capacity()<<" max_size="<<iVector.max_size()<<endl;
//After reserve: size=5 capacity=20 max_size=1073741823
//resize方法
iVector.resize(100);
cout<<"After resize: size="<<iVector.size()<<" capacity="<<iVector.capacity()<<" max_size="<<iVector.max_size()<<endl;
//After resize: size=100 capacity=100 max_size=1073741823
//begin方法
iVector.resize(5);//修改为5
INTVECTOR::iterator iter;
iter = iVector.begin();
cout<<"First element:"<<*iter<<endl;
//First element:2
//insert方法
//PrintIntVector(iVector);
iter = iVector.insert(iter, 65);
iVector.insert(iter+1, 2, 30);
iVector.insert(iVector.end(), iVector.begin(), iVector.end());//复制
PrintIntVector(iVector);
//Vector: [65,30,30,2,3,4,1,10,65,30,30,2,3,4,1,10]
//at方法
cout<<"Fifth element:"<<iVector.at(4)<<endl;
//Fifth element:3
//front 和 back方法
cout<<"First element: "<<iVector.front()<< endl;
cout<<"Last element: "<<iVector.back()<< endl;
//First element: 65
//Last element: 10
//erase方法
iVector.erase(iVector.begin());
PrintIntVector(iVector);
//Vector: [30,30,2,3,4,1,10,65,30,30,2,3,4,1,10]
//reverse_iterator使用方法
INTVECTOR::reverse_iterator riter;
riter = iVector.rbegin();
相关文章推荐
- STL中Vector的使用方法详解(转)
- STL中Vector的使用方法详解
- 【STL】根据一段代码总结STL中vector的一些使用方法
- C++ STL入门教程(1) vector向量容器使用方法
- STL中vector使用详解
- C++:[STL]浅谈Allocator以及详解STL之sequence container的操作及使用(vector)
- c++ vector(向量)使用方法详解(顺序访问vector的多种方式)
- 关于vector删除某一些特定的值的使用方法和出错的问题详解.
- STL第二章-vector的使用方法
- Java中的vector类使用方法示例详解
- C++的STL中的vector的使用方法
- C++ STL中vector的使用方法
- C语言vector的使用方法 C++中vector的用法详解
- 【STL】vector的insert方法详解
- STL 中 vector 的一些使用方法
- vector使用方法详解——一维的情况
- STL中List的使用方法详解
- 使用STL中的vector构建图的方法
- c++ vector(向量)使用方法详解(顺序访问vector的多种方式)
- 使用STL中的vector构建图的方法