STL-vector(ACM)
1.长度可变的数组
2.这里不是很懂,v.size() 代码源里说这个v.size()是无符号类型的,使用时要说明类型,
但是我在使用时并没有出现warning,有大佬知道原因吗?
3.vector是有v.clear()的
4.vector按字典序比较
重构函数(默认)
vector<int> v;
vector<int> v(3, 100); // 大小为3,每个数都是100
//下方为{}操作 C++11 可以用的
vector<int> v{1, 2, 3, 4}; // 把1,2,3,4塞进v里面,大小为4,元素1-4
基础操作
v.size(); // unsigned类型
v.resize(); v.empty();
v.clear(); // 只能清空表面 // 只有这两个操作
v.push_back();
v.pop_back(); // 下面两个是地址
v.begin(); // 指第一个元素的位置
v.end();// 指最后一个元素的地址+1的地址
// 例如
// 1 2 3 4 5 6 7 8
// ^ ^
// | |
// v.begin() v.end() v.insert(地址,元素) // 地址前一个插入元素
// 下方操作会在3423后面和53之间插入7
vector<int> v{1, 2, 3423, 53, 542};
v.insert(v.begin() + 3, 7);
// 括号里第一个是地址,第二个是要插入的元素
// 操作时间是O(n)的 v.erase(地址,元素); // 删去对应的元素 sort(v.begin(), v.end()); // 排序 lower_bound(v.begin(), v.end(), 100); auto it = lower_bound(v.begin(), v.end(), 100);
// 返回前闭后开地址区间内 >= 100 的第一个元素的迭代器
// 这个查找必须在有序列里面,查询方式是二分,时间复杂度O(logn) upper_bound(v.begin(), v.end(), 100)
auto it = upper_bound(v.begin(), v.end(), 100);
// 返回前闭后开地址区间内 > 100 的第一个元素的迭代器
// 这个查找必须在有序列里面,查询方式是二分,时间复杂度O(logn)
迭代器
// 迭代器(可以暂时理解为STL的指针)
vector<int>::iterator it = v.begin(); // 初始化 // 迭代器遍历模板(auto C++11后可用,自动判断后面的类型)
for (auto it = v.begin(); it != v.end(); it ++) {
cout << *it << endl;
}
遍历新语法(C++11之后可以使用)
for (int x : v) {
cout << x << endl;
}
// 遍历每一个元素,每一次x作为每个元素,int 可改为 auto等
// 普通数组、STL数组、vector 都可使用
// 不会改变原来的值
for (int x : v) {
x += 1;
} // 改变的只是每次x的值,v中的每个元素都不会改变
// 像下边这样
for (int i = 0; i < v.size(); i ++) {
int x = v[i];
x += 1;
cout << v[i] << endl;
}
但是加上 & 就能 改
for (int &x : v) {
x += 1;
}
// 加了是下边的效果
for (int i = 0; i < v.size(); i ++) {
int &x = v[i];
x += 1;
cout << v[i] << endl;
}
存图(以后回来看)
for (int i = 1; i <= m; i ++) {
int u, v;
scanf("%d%d", &u, &v);
g[u].push_back(v);
g[v].push_back(u);
}
for (auto v : g[u]) {
}
STL-vector(ACM)的更多相关文章
- stl 在 acm中的应用总结
总结一些在acm中常用的小技巧,小函数 之前尝试着总结过很多次.都失败了,因为总是担心不全,理解的也不是很透彻.这次再来一次...其实之前保存了很多的草稿就不发布了,当然,下面说的很不全面,路过的大牛 ...
- hdu5438 Ponds[DFS,STL vector二维数组]
目录 题目地址 题干 代码和解释 参考 题目地址 hdu5438 题干 代码和解释 解答本题时参考了一篇代码较短的博客,比较有意思,使用了STL vector二维数组. 可以结合下面的示例代码理解: ...
- C++ STL vector容器学习
STL(Standard Template Library)标准模板库是C++最重要的组成部分,它提供了一组表示容器.迭代器.函数对象和算法的模板.其中容器是存储类型相同的数据的结构(如vector, ...
- STL vector
STL vector vector是线性容器,它的元素严格的按照线性序列排序,和动态数组很相似,和数组一样,它的元素存储在一块连续的存储空间中,这也意味着我们不仅可以使用迭代器(iterator)访问 ...
- STL vector用法介绍
STL vector用法介绍 介绍 这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作.本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和f ...
- STL vector+sort排序和multiset/multimap排序比较
由 www.169it.com 搜集整理 在C++的STL库中,要实现排序可以通过将所有元素保存到vector中,然后通过sort算法来排序,也可以通过multimap实现在插入元素的时候进行排序.在 ...
- STL vector 用法介绍
介绍 这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作.本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和for_each()中的使用.通 ...
- STL vector使用方法介绍
介绍 这篇文章的目的是为了介绍std::vector,怎样恰当地使用它们的成员函数等操作.本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和for_each()中的使用.通 ...
- stl——vector详解
stl——vector详解 stl——vector是应用最广泛的一种容器,类似于array,都将数据存储于连续空间中,支持随机访问.相对于array,vector对空间应用十分方便.高效,迭代器使ve ...
- C++STL vector详解(杂谈)
介绍 这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作.本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和for_each()中的使用.通 ...
随机推荐
- CMSGC-GCRoots-三色标记
CMS收集器的特点:追求最短的停顿时间. CMS-Concurrent Mark Sweep 并发 标记 清除 标记垃圾的方式 标记清除:标记处需要回收的对象,标记完成后统一回收所有被标记的对象. 标 ...
- [CTF]upload-lab靶场day1
Pass-01 前端js绕过 拿到题目看hint提示判定在前端,用burp代理,将1.php后缀名更改为.png格式即可通过前端检测,而后在burp中对修改包内容,将1.png改为1.php即可绕过前 ...
- Visual Studio 2022 不支持 .NET Framework 4.5 项目的解决办法
概述 升级到Visual Studio 2022后,打开速度快了很多,开发体验也舒服很多.只是使用过程中遇到了一个比较尴尬的问题:默认Visual Studio 2022 不再支持安装 .NET F ...
- 在k8s(kubernetes) 上安装 ingress V1.1.0
Ingress 公开了从集群外部到集群内服务的 HTTP 和 HTTPS 路由.流量路由由 Ingress 资源上定义的规则控制. 下面是一个将所有流量都发送到同一 Service 的简单 Ingre ...
- windows如何拉取一个文件夹下的所有文件名
问题描述:遇到一个问题,是说一个文件夹下的文件太多了,如何去批量的拉去文件名呢,今天用CMD+DIR的方式拉取 1.文件目录也很深,就从文件导航栏进入CMD窗口 2.在当前目录中输入cmd,然后回车 ...
- .NET敏捷开发框架-RDIFramework.NET V5.1发布(跨平台)
RDIFramework.NET,基于全新.NET Framework与.NET Core的快速信息化系统敏捷开发.整合框架,给用户和开发者最佳的.Net框架部署方案.为企业快速构建跨平台.企业级的应 ...
- Auto-GPT测评:自信、努力、不合格
这两天,Auto-GPT 爆火 https://github.com/Torantulino/Auto-GPT 它是一款让最强语言模型GPT-4能够自主完成任务的模型,让整个AI圈疯了.它的嘴大突破是 ...
- 图文介绍 Windows 系统下打包上传 IOS APP 流程
现在很多伙伴跨平台开发应用,有些童鞋没有苹果机,本文将介绍,如何在 Windows 系统环境下直接上架 APP ,不用去搞虚拟机之类的了, Windows 下照样轻松打包上架 iOS APP . 下面 ...
- RCE-Tricks
这篇文章介绍RCE的一些tricks 0x01 无回显的RCE 在ctf中,有时会遇到无回显rce,就是说虽然可以进行命令执行,但却看不到命令执行的结果,也不知道命令是否被执行,借着这次总结rce的机 ...
- 牛客网:华为机试题(python版本)
输入一行:input() 输入的一行有多个信息:input().split() 有多组测试用例(多组同时输入): while true try except... 1.计算字符串最后一个单词的长度,单 ...