定义、初始化

// 初始化
vector<int> ve;   // size为0的vector
vector<int> ve(10);   // size为10,默认值为0
vector<int> ve(10, 1);    // size为10,默认值为1int a[5] = {1, 2, 3, 4 ,5};
vector<int> ve1(a, a + 5);   // 通过地址初始化
vector<int> ve2(ve1.begin(), ve1.end()); // 赋值
vector<int> a(10, 1);
vector<int> b(10, 100);
copy(b.begin(), b.begin() + 5, a.begin()); // copy函数

骚操作

sort(s.begin(), s.end(), [&] (const string &s, const string &t) {return s.size() < t.size();});

遍历vector,下标、迭代器、auto。

vector<int> ve;
//迭代器
vector<int>::iterator it;
for(it = ve.begin(); it < ve.end(); it++) {printf("%d ",*it);
}// auto
for (auto it : ve) {cou << it << endl;
}

修改元素

  • insert
//在起始位置插入 10
ve.insert(ve.begin(),10);//在起始位置插入 2个10
ve.insert(ve.begin(), 2, 10);//在起始位置插入 某个区间(地址)
ve.insert(ve.begin(), ve2.begin(), ve2.end());
  • push_back
// 在vector后插入元素
ve.push_back()
  • pop_back()
// 删除最后一个元素
ve.pop_back()
  • ve.front() 、ve.back() 、ve.clear()

  • erase

//删除某个区间
ve.erase(ve.begin(), ve.begin() + 1);//删除某个位置
ve.erase(ve.begin());

函数

  • accumulate 区域求和; 三个参数,前两个是范围,最后一个是初始值
vector<int> a(10, 1);
int sum = accumulate(a.begin(), a.end(), 0);vector<string> a(10, "1");
string sum = accumulate(a.begin(), a.end(), string(""));
  • swap() 交换两个vector
swap(ve1, ve2)
ve1.swap(ve2)
```c
- **reverse 翻转**

reverse(ve.begin(), ve.end());

- **find 查找**
```cpp
头文件: #include <algorithm>// 查找单个元素
vector<int>::iterator it;
it = find(ve.begin(), ve.end(), x);// vector中查找结构体(重载 == )
- 结构体内部重载
struct ac{int x, y;bool operator == (const ac & a) {return a.x == x && a.y == y;}
};
- 结构体外部重载
struct ac{int x, y;
};
bool operator == (const ac &a, const ac &b) {return a.x == b.x && a.y == b.y;
}
it = find(v.begin(), v.end(), (ac){a, b});// vector中查找pair(不需要重载 == )
it = find(v.begin(), v.end(), make_pair(a, b));

vector的基本操作相关推荐

  1. C/C++——vector的基本操作总结

    标准库vector类型是C++中使用较多的一种类模板,vector类型相当于一种动态的容器,在vector中主要有一些基本的操作,接下来分别从以下的几个方面总结: vector对象的定义和初始化 ve ...

  2. vector的基本操作简析

    vector <int >myvec; myvec.pop_back(); insert: 注意是在迭代器位置之前进行插入操作: 1)myvec(myvec.begin(),5); 2)m ...

  3. C++ STL容器总结之vector(超详细版)

    一.vector简介 vector的中文翻译为向量,是一种C++ STL中的序列容器.它的是存储方式和C++语言本身提供的数组一样都是顺序存储,因此vector的操作和数组十分相似.但是和数组不一样的 ...

  4. STL(二)——向量vector

    一.vector容器 ① 动态数组,从末尾能快速插入与删除,直接访问任何元素. ② 一个摸板类,能存放任何类型的对象. ③ Vector作为函数的参数或者返回值时,需要注意它的写法: double D ...

  5. vector和list的使用

    vector 是C++标准模板库中的部分内容,是一种容器.它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简 ...

  6. C++vector用法的初步介绍

    vector介绍: 1.容器,存放各种类型的对象,能够增加和压缩数据. 2.像数组一样,采用连续存储空间来存储数据.可采用下标进行访问,大小是动态改变的. 3.本质讲,vector使用动态分配数组来存 ...

  7. stl clocklist 查找元素_C++算法竞赛中常用的STL

    什么是STL? STL,Standard Template Library的缩写,标准模版库的意思.STL是一些"容器"的集合,这些容器包括list. vector.set.que ...

  8. ACM 网址和一些建议

    USACO http://ace.delos.com/usacogate 美国著名在线题库,专门为信息学竞赛选手准备 TJU http://acm.tongji.edu.cn/ 同济大学在线题库,唯一 ...

  9. 最全ACM常用STL

    STL 中专门用于排列的函数(可以处理存在重复数据集的排列问题) 头文件:#include <algorithm> using namespace std; 调用: next_permut ...

最新文章

  1. html input不可编辑
  2. 北京国家新一代人工智能创新发展试验区正式成立
  3. BURP 测试出 OPTIONS PUT DELETE TRACE 方法
  4. oracle开启日志服务,Oralce 归档日志开启与关闭示例
  5. Qt-IP地址查询工具(使用HTTP GET方法)
  6. 操作系统死机的12个问题
  7. 简单搜索 poj1321
  8. 一次函数的斜率公式_【海广教育数学口诀】初中数学学不会?公式这样记,让你做题效率翻倍!...
  9. *第四周*数据结构实践项目一【创建单链表】
  10. 工程实践线切割3B代码参考
  11. 游戏制作大师RPGMAKER MV/MZ安装DLC的方法
  12. 将RT-Thread Nano移植到STM32F401CCU6
  13. 网渲显示服务器错误,【渲染服务】渲染失败的几种原因
  14. HEVC中CU、TU、PU划分和扫描方式简析
  15. python网络爬虫(web spider)系统化整理总结(一):入门
  16. 网站漏洞修复之最新版本UEditor漏洞
  17. Pytorch 节省内存、显存的一些技巧
  18. 大学一级计算机字处理模拟题,大学计算机一级模拟操作题2
  19. 【TCP网络编程】C语言实现TCP服务器和客户端之间的通信(linux)
  20. 静态LSP的建立过程(华为设备)

热门文章

  1. 开始复习下sql,常用SQL语句示例(一)
  2. FDS (Flex Data Services)
  3. 2007年处女星座全年运势预测
  4. linux使用权限模式启动mongodb,Linux安装MongoDB启动及常见问题解决
  5. Swift之深入解析闭包Closures的使用和捕获变量的原理
  6. win10下的python3.5+ opencv安装攻略
  7. 130. Surrounded Regions 被围绕的区域
  8. 核心概念——节点/边/Combo——内置节点——Diamond
  9. Codeforces Round #552 (Div. 3) —— A. Restoring Three Numbers
  10. 1042:奇偶ASCII值判断