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)的更多相关文章

  1. stl 在 acm中的应用总结

    总结一些在acm中常用的小技巧,小函数 之前尝试着总结过很多次.都失败了,因为总是担心不全,理解的也不是很透彻.这次再来一次...其实之前保存了很多的草稿就不发布了,当然,下面说的很不全面,路过的大牛 ...

  2. hdu5438 Ponds[DFS,STL vector二维数组]

    目录 题目地址 题干 代码和解释 参考 题目地址 hdu5438 题干 代码和解释 解答本题时参考了一篇代码较短的博客,比较有意思,使用了STL vector二维数组. 可以结合下面的示例代码理解: ...

  3. C++ STL vector容器学习

    STL(Standard Template Library)标准模板库是C++最重要的组成部分,它提供了一组表示容器.迭代器.函数对象和算法的模板.其中容器是存储类型相同的数据的结构(如vector, ...

  4. STL vector

    STL vector vector是线性容器,它的元素严格的按照线性序列排序,和动态数组很相似,和数组一样,它的元素存储在一块连续的存储空间中,这也意味着我们不仅可以使用迭代器(iterator)访问 ...

  5. STL vector用法介绍

    STL vector用法介绍 介绍 这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作.本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和f ...

  6. STL vector+sort排序和multiset/multimap排序比较

    由 www.169it.com 搜集整理 在C++的STL库中,要实现排序可以通过将所有元素保存到vector中,然后通过sort算法来排序,也可以通过multimap实现在插入元素的时候进行排序.在 ...

  7. STL vector 用法介绍

    介绍 这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作.本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和for_each()中的使用.通 ...

  8. STL vector使用方法介绍

    介绍 这篇文章的目的是为了介绍std::vector,怎样恰当地使用它们的成员函数等操作.本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和for_each()中的使用.通 ...

  9. stl——vector详解

    stl——vector详解 stl——vector是应用最广泛的一种容器,类似于array,都将数据存储于连续空间中,支持随机访问.相对于array,vector对空间应用十分方便.高效,迭代器使ve ...

  10. C++STL vector详解(杂谈)

    介绍 这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作.本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和for_each()中的使用.通 ...

随机推荐

  1. PTA题目总结

    (1)前言:第一次题目集主要考察JAVA的一些语法知识,比如,控制台的输入,输出时保留两位小数,数组的使用,第十题有点难度,当时没写出来,现在想想 也还好,就是读懂题目有点费劲,第一次题目的题量比较大 ...

  2. Three.js 进阶之旅:全景漫游-初阶移动相机版

    声明:本文涉及图文和模型素材仅用于个人学习.研究和欣赏,请勿二次修改.非法传播.转载.出版.商用.及进行其他获利行为. 摘要 3D 全景技术可以实现日常生活中的很多功能需求,比如地图的街景全景模式.数 ...

  3. 如何申请 Azure OpenAI

    一.前言 众所周知 OpenAI ChatGPT 是不对中国开放的,包括香港.就最近一个月的情况来看,陆续有 API 调用被限制.大规模账号封禁.关闭注册.无法直接使用银联支付(国内信用卡)等等,使用 ...

  4. 管理WEB服务器文件的WebDAV协议&HTTP大跃进--QUIC与HTTP30&WEB安全攻击概述

    管理WEB服务器文件的WebDAV协议 WebADV协议 WEBDAV追加方法 WeDAV请求示例 HTTP大跃进--QUIC与HTTP30 QUIC&HTTP3.0 HTTP2.0的问题 队 ...

  5. visio秘钥

    一.Visio2016专业版永久激活码: Visio 2016 Professional Retail零售版 [Key]:NKVJM-8MTT4-8YDFR-6738M-DPFJH [Key]:W9W ...

  6. 【SpringCloud】(一)分布式理论

    分布式架构理论 方法远程调用 各个模块运行于不同的tomcat,模块之间通过网络进行调用. 远程调用的技术演进 1 WebService 解决应用程序之间的跨平台访问问题,基于SOAP/WSDL协议, ...

  7. 本地socket通讯

    本地socket通讯        虽然学过网络socket,但是对于本地socket通讯却不是很熟悉,刚在项目中看到,所以在网上找了一篇介绍的比较详细的,mark下!!!        socket ...

  8. html5和css3基础学习笔记

    网页简介 一个页面包括结构.表现.行为三个部分. 结构:HTML用于描述页面的结构. 表现:CSS用于控制页面中元素的样式. 行为:JavaScript用于响应用户操作. 第一部分 HTML 5(Hy ...

  9. 【Azure 存储服务】Java Storage SDK 调用 uploadWithResponse 代码示例(询问ChatGTP得代码原型后人力验证)

    问题描述 查看Java Storage SDK,想找一个 uploadWithResponse  的示例代码,但是通过全网搜索,结果没有任何有帮助的代码.使用最近ChatGPT来寻求答案,得到非常有格 ...

  10. 【Azure 媒体服务】Media Service的编码示例 -- 创建缩略图子画面的.NET代码调试问题

    问题描述 在中国区Azure上,使用Media Service服务,想要使用.NET的代码来对上传视频创建缩略图(Thumbnail) . 通过官网文档(https://docs.azure.cn/z ...