C++之STL -- vector
来源:互联网 发布:thinkpad系列知乎 编辑:程序博客网 时间:2024/06/18 01:15
C++之STL -- vector
(1)vector是将元素置于一个动态数组中加以管理的容器
(2)vector可以随机存取元素(支持索引直接存取,用[]操作或者at()方法)
特点:vector在尾部添加或者移动元素非常快,但是在头部或中间插入元素或移除元素比较费时。
1.vector的初始化
#include <iostream>#include <vector>using namespace std;int main(){ vector<int> v1; v1.push_back(1); v1.push_back(3); v1.push_back(5); v1.push_back(7); vector<int> v2 = v1; //对象初始化 vector<int> v3(v1.begin(),v1.begin()+2); return 0;}
2.数组元素的弹出,添加和删除。
#include <iostream>#include <vector>using namespace std;int main(){ vector<int> v1; cout << "v1.size() = " << v1.size() << endl; v1.push_back(1); v1.push_back(3); v1.push_back(5); cout << "v1.size() = " << v1.size() << endl; cout <<"头部元素为:" << v1.front() << endl; //获取头部元素 v1.front() = 10; //修改头部元素 cout << "弹出元素:" << endl; while (!v1.empty()) { cout << v1.back() << " "; //获取尾部元素 v1.pop_back(); //删除尾部元素 } cout << endl; return 0;}
3.vector的遍历
#include <iostream>#include <vector>using namespace std;void printV(vector<int> &v){ for(int i=0;i<v.size();i++) { cout << v[i] << " "; } cout << endl;}int main(){ vector<int> v1(5); //提前准备好内存 for(int i=0;i<5;i++) { v1[i] = i+1; } printV(v1); return 0;}
4.vector迭代器
注:v1.end()的位置是最后一个元素的后面。
#include <iostream>#include <vector>using namespace std;int main(){ vector<int> v1(10); for(int i=0;i<10;i++) { v1[i] = i+1; } for(vector<int>::iterator it = v1.begin();it!=v1.end();it++) { cout << *it << " "; } cout << endl; return 0;}
5.迭代器种类
#include <iostream>#include <vector>using namespace std;int main(){ vector<int> v1(10); for(int i=0;i<10;i++) { v1[i] = i+1; } //正向遍历 for(vector<int>::iterator it = v1.begin();it!=v1.end();it++) { cout << *it << " "; } cout << endl; //逆向遍历 for(vector<int>::reverse_iterator rit = v1.rbegin();rit!=v1.rend();rit++) { cout << *rit << " "; } cout << endl; return 0;}
6.vector的基本操作
(1)区间删除
(2)指定位置删除
#include <iostream>#include <vector>using namespace std;int main(){ vector<int> v1(10); for(int i=0;i<10;i++) { v1[i] = i+1; } //区间删除 v1.erase(v1.begin(),v1.begin()+3); //前三个元素被删除 //指定位置删除 v1.erase(v1.begin()); //在头部删除一个元素 for(vector<int>::iterator it = v1.begin();it!=v1.end();it++) { cout << *it << " "; } cout << endl; return 0;}
(3)根据元素的值删除
#include <iostream>#include <vector>using namespace std;int main(){ vector<int> v1(10); for(int i=0;i<10;i++) { v1[i] = i+1; } for(vector<int>::iterator it = v1.begin();it!=v1.end();it++) { if (*it == 2) {//返回迭代器对象 it = erase(it); //当删除迭代器所指向的元素的时候,erase删除函数会让it自动下移 } else { it++; } } cout << endl; return 0;}
(4)插入:insert
#include <iostream>#include <vector>using namespace std;int main(){ vector<int> v1(10); for(int i=0;i<10;i++) { v1[i] = i+1; } v1.insert(v1.begin(),100); //头部插入 v1.insert(v1.end(),200); //尾部插入 for(vector<int>::iterator it = v1.begin();it!=v1.end();it++) { cout << *it << " "; } cout << endl; return 0;}
阅读全文
0 0
- c++STL之vector
- C++STL之vector
- C++STL之vector
- C++STL之vector
- C++STL之vector容器
- C++STL容器技术之Vector
- 初学者学习C++STL之vector容器
- C++:STL之vector,deque对比
- C++ STL之vector详解
- C++(18):STL之vector初步
- C++——STL之vector
- [C++::STL]之vector的用法
- C++STL之vector详解(转)
- C++stl vector 用法
- C++:STL vector讲解
- C++STL--vector
- 【STL】STL容器之vector
- STL之vector模板
- anaconda已安装python2.7版本直接命令行操作安装3.6或任何版本的方法
- java 简介(计算机编程语言)
- Linux SUID、SGID、chattr特殊权限位
- Python解析“Unicode”编码格式文本
- http header
- C++之STL -- vector
- Java笔记17
- Appium-安卓原生-常见元素定位API的Python用法(二)
- 事情其实很简单
- 十二月英语总结
- php+mysql数据分页显示
- Leetcode 376. Wiggle Subsequence 解题报告
- 五个主流以太网技术比较
- Zookeeper单机安装