C++ vector容器

news/2025/4/1 5:09:40/

1. 定义初始化vector对象

vector<string> vStr; // 空容器vStr.push_back("ABC");
vStr.push_back("123");vector<string> vStr1(vStr);  // 拷贝构造
vector<string> vStr2 = vStr; // 拷贝构造// C++ 11
vector<string> vStr3 = { "AAA", "BBB", "123" };
vector<string> vStr4{ "AAA", "BBB", "123" };vector<int> vStr5 = { 1, 2, 3 };
vector<int> vStr6{ 1, 2, 3 };// 创建指定数量的元素
vector<int> v(10, 1);           // v中有10个1
vector<string> v1(5, "Hello");  // v1中有5个Hellovector<int> v2(5);     // v2中有5个0
vector<string> v3(5);  // v3中有5个空串 ""vector<int> v4{ 3 };             // v4中有1个3
vector<string> v5{ "Hello" };    // v5中有1个Hello
vector<string> v6{ 3 };          // v6中有3个空串 ""
vector<string> v7{ 3, "Hello" }; // v7中有3个Hello
vector<int> v8{ 3, 1 };          // v8中有元素3、1,等同于初始化列表

注意:vector不能装引用,如下:

vector<int&> v0; // 错误
vector<int*> v1; // 正确

2. vector常用函数

2.1 empty  判断是否为空

vector<int> v;
if(v.empty()) {
}

2.2 push_back  尾插

vector<int> v;
v.push_back(1);
v.push_back(2);
v.push_back(3);

2.3 emplace_back  尾插

2.4 size  返回元素个数

vector<string> v;
v.push_back("123");
v.push_back("ABC");
v.size();  // 2

2.5 clear  清空容器

vector<string> v;
v.push_back("123");
v.push_back("ABC");
v.size();  // 2v.clear();
v.size();  // 0

2.6 v[n]  返回vector容器中第n个元素

vector<string> v;
v.push_back("123");
v.push_back("ABC");v[1]; // "ABC"

2.7 =  赋值

vector<int> v1{ 1, 2, 3, 4 };
vector<int> v2{ 5 };v2 = v1;      // v2中的元素就和v1中一样了v2 = { 99 };  // v2中的元素为99

2.8 ==、!=  判断两个容器中对应位置的元素是否相同

vector<int> v1{ 1, 2, 3, 4 };
vector<int> v2{ 5 };v1 == v2;   // falsev2 = v1;
v1 == v2;   // truev1.clear();
v2.clear();
v1 == v2;   // true

2.9 范围for对vector的使用

vector<int> v { 1, 2, 3, 4 };
for(auto& val : v) {val *= 2;  // v中每个元素都*2
}

遍历容器时,建议不要进行增、删、重分配,否则会造成迭代器失效。

待补充


http://www.ppmy.cn/news/271730.html

相关文章

ipad2升级ios6详细图文教程

http://www.pc6.com/edu/58658.html

华为手机如何升级鸿蒙系统_华为鸿蒙2.0系统怎么进行升级?鸿蒙2.0系统升级教程...

华为鸿蒙2.0系统怎么进行升级&#xff1f;很多用户都还不太清楚这个鸿蒙2.0系统升级的方法&#xff0c;那么今天就让浏览器小编为大家带来&#xff0c;鸿蒙2.0系统升级教程。 华为鸿蒙2.0系统怎么进行升级&#xff1f; 华为EMUI11新系统在9月举行的华为开发者大会上正式发布&am…

magic2怎样升级HarmonyOS,鸿蒙2.0怎么升级 华为鸿蒙新系统升级方法步骤

最近华为新出了鸿蒙系统&#xff0c;很多网友都想更新尝试一下&#xff0c;现在鸿蒙系统已经开启了公测&#xff0c;大家都非常的想更新试一试体验一下&#xff0c;但是很多的网友都不知道该如何升级&#xff0c;其实一些支持首批公测的机型&#xff0c;是需要公测申请后才可以…

android平板 可以刷ios,终于跟上安卓!iPad Pro新功能曝光:系统升级方便了

iOS和iPadOS被视为iPhone和iPad的最大优势&#xff0c;然而苹果系统总会有一些奇奇怪怪的设定&#xff0c;就比如系统升级方面&#xff0c;iPhone 12系列之前&#xff0c;所有的iPhone都只能使用Wi-Fi更新系统。直到iPhone 12系列&#xff0c;才支持使用5G蜂窝网络更新系统。 5…

ipad mini2 12.5.4成功降级 10.3.3

手里的ipad mini2 是16G WIFI版本。15年屏幕进水后内屏排线被腐蚀后屏幕无法点亮。 2020年疫情影响下&#xff0c;沉寂近5年后&#xff0c;通过更换配件&#xff0c;成功救活。不过系统版本太旧&#xff08;估计是ios9&#xff09;,部分常用软件已不支持&#xff0c;被迫通过系…

第四十八回:TabBar Widget

文章目录 概念介绍使用方法示例代码 我们在上一章回中介绍了MaterialApp Widget相关的内容,本章回中将介绍 TabBar Widget.闲话休提&#xff0c;让我们一起Talk Flutter吧。 概念介绍 我们在这里说的TabBar Widget是指屏幕顶部的标签&#xff0c;通常情况下在一个界面的顶部有…

【数据结构与算法】线性表 01 链表

一、线性表1.1 概念与特点1.2 线性表的存储结构1.3 常见操作1.4 应用场景 二、链表2.1 链表简介2.2 单向链表&#xff08;单链表&#xff09;2.21 基本概念2.22 单链表基本操作2.23 C语言实现 2.3 双向链表2.4 循环链表 一、线性表 线性表是一种最基本、最简单的数据结构&…

轮廓检测及功能

目录 一、实验介绍二、实验步骤三、实验任务任务一&#xff1a;轮廓特征练习一: 找到每个轮廓的方向任务二&#xff1a;边界矩形练习二: 围绕轮廓裁剪图像 一、实验介绍 1. 实验内容 本实验将学习轮廓检测及功能。 2. 实验要点 生成二进制图像来查找轮廓找到并画出轮廓轮廓…