STL容器:vector
来源:互联网 发布:淘宝网地板砖 编辑:程序博客网 时间:2024/06/08 12:28
基础
尾部开口,因此在其尾部进行数据的输入输出操作效率最高。
尾部输入成员函数push_back(),尾部删除成员函数pop_back()
常用构造函数见如下程序:
int _tmain(int argc, _TCHAR* argv[]){ vector<int> v1;//构造一个空的容器 for (int i = 0; i < 20; i++) { v1.push_back(i); //vector如何实现内存的动态增长,会预先创建一块内存区,当用完后再重新申请 cout << "v1.size():" << v1.size() << " v1.capacity()" << v1.capacity()<<endl;//size()元素的个数,capacity() vector的总长度,包括没被初始化的元素 } vector<int> v2(10);//构造一个长度为10的容器 vector<int> v3(10,2);//构造一个长度为10的容器,并用2初始化它 vector<int> v4(v1);//构造一个容器v4,并用v1初始化它 vector<int> v5(v1.begin()+1, v1.begin()+11);//构造一个容器v5并用v1的部分元素初始化它 return 0;}
数据的访问
int _tmain(int argc, _TCHAR* argv[]){ vector<int> v1; for (int i = 0; i < 5; i++) { v1.push_back(i); } cout << "使用下标和at()读取数据" << endl; for (int i = 0; i < v1.size(); i++) { cout << v1[i] << " " << v1.at(i)<<endl; } cout << "使用下标和at()来写入数据" << endl; v1[0] = 10; v1.at(1) = 11; for (int i = 0; i < v1.size(); i++) { cout << v1[i] << " " << v1.at(i) << endl; } //使用迭代器来插入数据 vector<int>::iterator iter; iter = v1.begin(); v1.insert(iter + 1, 0); cout << "使用迭代器来遍历输出数据" << endl; for (iter = v1.begin(); iter!= v1.end(); iter++) { cout << *iter << endl; } return 0;}
其它的常用函数:
clear() 删除容器中所有元素
erase(pos) 删除pos指定位置的元素
erase(begin,end) 删除begin到end-1间的所有元素
insert(pos,elem) 在pos处插入elem,并返回新元素的位置
insert(pos,n,elem) 在pos处插入n个elem
insert(pos,begin,end) 把begin到end-1的所有元素拷贝到pos处
resize(n) 将元素个数改为n
resize(n,elem) 将元素个数改为n,如果size增加,把增加的都初始化为elem
c++11为vertor增加的新内容:
使用{}来初始化和赋值
简单地使用for来遍历元素并进行简单操作
int _tmain(int argc, _TCHAR* argv[]){ vector<int> v1= {1,2,3,4,5}; for (auto &i : v1){ i = i*i; } for (auto &i : v1){ cout << i << endl; } return 0;}
0 0
- STL vector 容器实现
- STL vector 容器介绍
- STL vector 容器介绍
- STL vector 容器介绍
- STL vector 容器介绍
- STL vector 容器介绍
- STL vector 容器介绍
- STL vector 容器介绍
- STL vector 容器介绍
- STL vector 容器介绍
- STL vector 容器介绍
- STL vector 容器介绍
- STL vector 容器介绍
- STL vector 容器介绍
- STL vector 容器介绍
- STL vector 容器介绍
- STL vector 容器介绍
- STL vector 容器介绍
- spark mllib源码分析之随机森林(Random Forest)(三)
- 242. Valid Anagram
- HTML标签元素
- Ubuntu 配置 Tomcat
- 图论-思维题-hdu6029-Graph Theory
- STL容器:vector
- Linux下MongoDB权限管理
- S5PV210 DATASHEET Section2.6 booting sequence 翻译
- 编码问题:ASCII、Unicode和UTF-8
- Hibernate_操作对象_对象的状态分类、Session中的方法概述
- 【Leetcode508】Most Frequent Subtree Sum题解
- kafka学习记录
- Android 音频系统:从 AudioTrack 到 AudioFlinger
- 百度上传插件webuploader使用心得