【转】vector向量容器 基本操作
2013-11-22 09:16
537 查看
vector向量容器:
1.创建vector对象的三种形式:
(1)不指定容器元素的个数
vector<int> v;
(2)创建时指定容器的大小
vector<int> v(10);
(3)指定大小并赋初值
vector<int> v(10,0); 10个元素初值都是0
2.尾部元素扩张
使用push_back()对vector容器在尾部追加新元素,尾部追加新元素,vector容器会自动分配新内存空间。
Eg:
3.下标方式访问vector元素
4.元素的插入
Insert()方法可以在vector对象的任意位置前插入一个新的元素,同时vector自动扩展空间。
Eg:
5.元素的删除
erase()方法可以删除vector迭代器所指的一个元素或一段区间中的所有元素
clear()方法则一次性删除vector中所有的元素
6.反向排列算法
reverse()反向排列算法,需要定于头文件#include <algorithm>
7.sort
可以自己设置比较函数cmp
8.向量的大小
使用size()方法可以返回向量的大小,即元素的个数
使用empty()方法返回向量是否为空,非空返回0,空则返回1
http://blog.csdn.net/acdreamers/article/details/8680967
1.创建vector对象的三种形式:
(1)不指定容器元素的个数
vector<int> v;
(2)创建时指定容器的大小
vector<int> v(10);
(3)指定大小并赋初值
vector<int> v(10,0); 10个元素初值都是0
2.尾部元素扩张
使用push_back()对vector容器在尾部追加新元素,尾部追加新元素,vector容器会自动分配新内存空间。
Eg:
#include <iostream> #include <vector> using namespace std; int main() { vector<int> v; v.push_back(2); v.push_back(5); v.push_back(10); for(vector<int>::iterator i=v.begin();i!=v.end();i++) cout<<*i<<" "; cout<<endl; return 0; }
3.下标方式访问vector元素
#include <iostream> #include <vector> using namespace std; int main() { vector<int> v(3); v[0]=2; v[1]=5; v[2]=10; for(int i=0;i<3;i++) cout<<v[i]<<" "; cout<<endl; return 0; }
4.元素的插入
Insert()方法可以在vector对象的任意位置前插入一个新的元素,同时vector自动扩展空间。
Eg:
#include <iostream> #include <vector> using namespace std; int main() { vector<int> v; int a,i,k; for(i=0;i<5;i++) { cin>>a; v.push_back(a); } cin>>k; v.insert(v.begin()+k,10); for(vector<int>::iterator it=v.begin();it!=v.end();it++) cout<<*it<<" "; cout<<endl; return 0; }
5.元素的删除
erase()方法可以删除vector迭代器所指的一个元素或一段区间中的所有元素
clear()方法则一次性删除vector中所有的元素
#include <iostream> #include <vector> using namespace std; int main() { vector<int> v; for(int i=0;i<10;i++) v.push_back(i); v.erase(v.begin()+2); //删除下标为2的元素 vector<int>::iterator it; for(it=v.begin();it!=v.end();it++) cout<<*it<<" "; cout<<endl; v.erase(v.begin()+1,v.begin()+5); //注意这里是删除下标从1到4的所有元素 for(it=v.begin();it!=v.end();it++) cout<<*it<<" "; cout<<endl; v.clear(); cout<<v.size()<<endl; return 0; }
6.反向排列算法
reverse()反向排列算法,需要定于头文件#include <algorithm>
#include <iostream> #include <algorithm> #include <vector> using namespace std; int main() { vector<int> v; for(int i=0;i<10;i++) v.push_back(i); reverse(v.begin(),v.end()); vector<int>::iterator it; for(it=v.begin();it!=v.end();it++) cout<<*it<<" "; cout<<endl; return 0; }
7.sort
可以自己设置比较函数cmp
#include <iostream> #include <algorithm> #include <vector> using namespace std; int main() { vector<int> v; for(int i=0;i<10;i++) v.push_back(9-i); sort(v.begin(),v.end()); vector<int>::iterator it; for(it=v.begin();it!=v.end();it++) cout<<*it<<" "; cout<<endl; return 0; }
8.向量的大小
使用size()方法可以返回向量的大小,即元素的个数
使用empty()方法返回向量是否为空,非空返回0,空则返回1
#include <iostream> #include <algorithm> #include <vector> using namespace std; int main() { vector<int> v; for(int i=0;i<10;i++) v.push_back(i); vector<int>::iterator it; cout<<v.size()<<endl; v.clear(); cout<<v.empty()<<endl; return 0; }
http://blog.csdn.net/acdreamers/article/details/8680967
相关文章推荐
- 技术团队新官上任之高层篇
- Smack:概述
- 在js中对时间类型格式化字符串
- Windows.ScreenToClient
- openstack之role篇
- 修改oracle数据库默认时间格式
- listview中分列展示数据
- 服务器优化——Sysctl、Apache、MySQL
- 解析URI与URL之间的区别与联系
- xshell总是在最前端解决办法
- Flex datagrid 中实现combobox联动
- php高级研发或架构师必了解---很多问题面试中常问到!
- Easyui 创建dialog的两种方式,以及他们带来的问题
- QTP中DataTable操作大全
- 好无聊啊···
- 好无聊啊···
- C#连接mysql (vs2010)
- Java内存管理第三篇 - 内存可能产生的问题
- 使用联想恢复盘安装正版Win7 Professional
- Source Insight里的汉字问题