STL系列之二_vector(其他用法代码演示)
2015-04-28 20:08
375 查看
vector其他的一些问题:
1.vector<int> vectorA; //声明空的容器, 不应该写成vector<int> vectorA();
2.成员函数:
front() 首元素 //可作为左值或者右值
back() 尾元素 //可作为左值或者右值
at() 某一位置元素 //可作为左值或者右值
resize() 重新定义vector的大小
copy() //后卫利用copy实现两个容器向一个容器的复制
for_each 对遍历的数据进行处理
sort 对遍历的数据进行排序
下面是代码和运行结果:
Results:
1.vector<int> vectorA; //声明空的容器, 不应该写成vector<int> vectorA();
2.成员函数:
front() 首元素 //可作为左值或者右值
back() 尾元素 //可作为左值或者右值
at() 某一位置元素 //可作为左值或者右值
resize() 重新定义vector的大小
copy() //后卫利用copy实现两个容器向一个容器的复制
for_each 对遍历的数据进行处理
sort 对遍历的数据进行排序
下面是代码和运行结果:
// vector.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <iostream> #include <vector> #include <algorithm> //for_each using namespace std; void add(int& lhs) //用于for_each { lhs++; } bool comp(const int&a,const int &b) //用于sort { return a>b; } int _tmain(int argc, _TCHAR* argv[]) { vector<int> vecIntA; //建立空的容器,注意后面不能带括号。 vecIntA.push_back(1); vecIntA.push_back(2); vecIntA.push_back(3); for(vector<int>::iterator iA=vecIntA.begin(); iA!=vecIntA.end();iA++) { cout<<*iA<<" "; } cout<<endl; //front,at,back作为右值 int Front = vecIntA.front(); int At=vecIntA.at(1); int Back = vecIntA.back(); cout<<Front<<" "<<At<<" "<<Back<<endl; //front,at,back作为左值 vecIntA.front() = 4; vecIntA.at(1) = 5; vecIntA.back() = 6; for(vector<int>::iterator iA2=vecIntA.begin(); iA2!=vecIntA.end();iA2++) { cout<<*iA2<<" "; } cout << endl; cout<<"当前容器大小为:"<<vecIntA.capacity()<<endl; //重新定义vector的大小 vecIntA.resize(4); cout<<"当前容器大小为:"<<vecIntA.capacity()<<endl; //除了at外,使用数组的形式访问 vecIntA[3] = 7; for(vector<int>::iterator iA3=vecIntA.begin(); iA3!=vecIntA.end();iA3++) { cout<<*iA3<<" "; } cout << endl; //下面将vecIntA和vecIntB的内容复制到C中 vector<int> vecIntB(4,8); vector<int> vecIntC; //重新定义大小 vecIntC.resize(vecIntA.size()+vecIntB.size()); //先将A拷贝到C中,并更新迭代器的值。这是的iClast指向iC末尾元素的下一个位置。 vector<int>::iterator iClast = copy(vecIntA.begin(),vecIntA.end(),vecIntC.begin()); //利用上次的迭代器,将B拷贝到C copy(vecIntB.begin(),vecIntB.end(),iClast); for(vector<int>::iterator iC=vecIntC.begin(); iC!=vecIntC.end();iC++) { cout<<*iC<<" "; } cout << endl; //for_each的用法 for_each(vecIntC.begin(),vecIntC.end(),add);//for_each的第三个参数写函数名,即add for(vector<int>::iterator iC2=vecIntC.begin(); iC2!=vecIntC.end();iC2++) { cout<<*iC2<<" "; } cout << endl; //sort默认从小到大进行排序,现在从大到小排序 sort(vecIntC.begin(),vecIntC.end(),comp); //sort的第三个参数写函数名 for(vector<int>::iterator iC3=vecIntC.begin(); iC3!=vecIntC.end();iC3++) { cout<<*iC3<<" "; } cout << endl; //六种操作符 < <= > >= == != return 0; }
Results:
相关文章推荐
- STL系列之二_vector(常见函数代码演示)
- STL之二:vector容器用法详解
- STL系列之二_list与vector的区别
- STL之二:vector容器用法详解
- STL之二:vector容器用法详解
- C++学习 STL之二:vector容器用法详解
- STL学习系列之二——序列容器(vector)
- STL学习系列之二——序列容器(vector)
- c++ STL 系列之二 vector
- STL之二:vector容器用法详解
- STL系列之deque双端队列+vector向量容器
- C++模版STL中 map 和 string, vector 的用法详解!
- 实战c++中的vector系列--vector的遍历(stl算法、vector迭代器(不要在循环中判断不等于end())、operator[])
- cocos2d-x系列笔记技巧篇—关于CREATE_FUNC宏的用法 分类: cocos2d代码编写 2015-07-29 08:50 7人阅读 评论(0) 收藏
- STL中vector的用法
- STL中常用的vector,map,set 用法
- STL中map和string, vector 用法详解
- RabbitMQ系列—RabbitMQ 代码演示
- STL系列之二 stack栈
- C++ 标准模板库STL中vector用法介绍