赞
踩
向量(vector)是属于STL(Standard Template Library, 标准模板库)中的一种随机访问数组的类型.
使用的时候需要使用#include <vector> 引入,否则会报错,
- #include <iostream>
- #include <string>
- using namespace std;
- #include <vector>
-
- int main()
- {
- // 创建一个空的
- vector<int> a;
- cout << a.size() << endl;
- // 创建一个10个元素对象
- vector<int> b(10);
- // 创建5个元素且5个元素都为明天
- cout << b.size() << endl;
- vector<string> c(5, "明天");
- for (int i = 0; i < b.size(); i++)
- {
- cout << c[i] << endl;
- }
-
-
- return 0;
- }
函数 | 说明 |
assign(first,last) | 用迭代器first和last所在元素替换向量元素 |
assign(num,val) | 用val的num个副本替换向量元素 |
at(n) | 返回向量中第n个位置元素的值 |
begin | 向量中第一个元素的引用 |
end | 向量中最后一个元素的引用 |
size | 返回向量的个数 |
front | 获取向量中第一个元素 |
back | 获取向量中最后一个元素 |
empty | 判断向量是否为空,为空返回true |
clear | 清空向量元素 |
pop_back | 删除向量中最后一个元素 |
rbegin | 返回一个反向迭代器,指向向量末尾元素之后 |
rend | 返回一个反向迭代器,指向向量起始元素 |
erase(i) | 删除第i位置的元素(注意不能直接为数组,需要用begin或者end) |
erase(start,end) | 删除指定的元素返回,注意是前包含后不包含,里面不能是数字 |
capacity | 当前vector分配的大小 |
insert(i,x) | 把 i 插入到x位置 |
insert(i,x,y) | 把 i 插入到x到y 的位置 |
swap | 与另一个vector交换数据 |
- #include <iostream>
- #include <string>
- using namespace std;
- #include <vector>
-
- int main()
- {
- // 声明一个int 类型向量
- vector<string> ve;
- // 获取默认向量的size
- cout << ve.size() << endl;
- //在末尾位置添加元素
- ve.push_back("赵");
- ve.push_back("钱");
- ve.push_back("孙");
- ve.push_back("李");
- // 获取向量的size
- cout << ve.size() << endl;
- // 当前vector分配的大小
- cout << ve.capacity() << endl;
- // 开始的位置插入元素
- ve.insert(ve.begin(),"百家姓:");
- // 结束的位置插入元素
- ve.insert(ve.end(),"ok");
- //删除指定的元素返回,注意是前包含后不包含,里面不能是数字,
- // ve.erase(ve.begin(),ve.begin()+2);
- // 删除第二个向量元素
- ve.erase(ve.begin()+1);
- //删除最后一个元素
- ve.pop_back();
- // for遍历向量的元素
- for (int i = 0; i < ve.size(); i++)
- {
- cout << ve[i] << endl;
- }
- //使用迭代器遍历元素
- for(vector<string>::iterator it=ve.begin();it!=ve.end();it++){
- cout<<*it<<endl;
- }
- // 获取向量第一个元素
- cout << ve.front() << endl;
- // 获取向量最后一个元素
- cout << ve.back() << endl;
- //获取第3个位置的元素
- cout << ve.at(2) << endl;
- // 向量判空
- if (ve.empty())
- {
- cout << "ve为空" << endl;
- }
- else
- {
- cout << "ve不为空" << endl;
- }
- // 清空
- ve.clear();
- return 0;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。