【C++篇】Vector容器 Vector嵌套容器

文章目录

  • 🍔简述vector
  • 🎄vector存放内置数据类型
    • ⭐创建一个vector容器
    • ⭐向容器里面插入数据
    • ⭐通过迭代器访问容器里面的数据
    • ⭐遍历
      • 🎈第一种遍历方式
      • 🎈第二种遍历方式
      • 🎈第三种遍历方式
  • 🎄vector存放自定义数据类型
  • 🎄vector嵌套vector

在这里插入图片描述
C++是一种通用的、静态类型的编程语言,融合了C语言的低层内存操作和C++的封装、继承、多态等面向对象特性。它由Bjarne Stroustrup于1983年在瑞典斯德哥尔摩创造,旨在提供一种更有效的系统编程语言。C++可以用于开发各种类型的应用程序,包括操作系统、编译器、数据库、游戏和图形用户界面应用程序。它被广泛用于企业、科学、工程和娱乐领域。C++的语法与C语言相似,但它提供了更多的安全性和抽象级别,使程序员能够编写出更清晰、更健壮的代码。C++拥有一个庞大而活跃的开发人员社区,提供了大量的库和工具,可以帮助开发者更有效地使用这门语言。

🍔简述vector

在C++ STL中,vector是一个动态数组容器,它提供了一种能够在运行时自动调整大小的数组结构。vector可以存储任意类型的元素,并且支持随机访问、插入、删除等操作。

🎄vector存放内置数据类型

使用vector容器需要引入头文件

#include<vector> 

⭐创建一个vector容器

vector<int> v;

⭐向容器里面插入数据

v.push_back(10);
v.push_back(20);
v.push_back(30);

⭐通过迭代器访问容器里面的数据

vector<int>::iterator itBegin=v.begin();

起始迭代器,指向容器中的第一个元素

vector<int>::iterator itEnd=v.end();

结束迭代器,指向容器中最后一个元素的下一个位置

⭐遍历

🎈第一种遍历方式

	while(itBegin!=itEnd)
	{
		cout<<*itBegin<<endl;
		itBegin++;
	}

在这里插入图片描述
相当于就是下图的情况
在这里插入图片描述

🎈第二种遍历方式

for (vector<int>::iterator it = v.begin(); it != v.end(); it++) 
{
	cout << *it << endl;
}

在这里插入图片描述

🎈第三种遍历方式

在这里插入图片描述

🎄vector存放自定义数据类型

#include<iostream>
#include<vector>
using namespace std;

class Person
{
public:
	Person(string name,int age)
	{
		this->m_Name = name;
		this->m_Age = age;
	}
	string m_Name;
	int m_Age;
};

void test01()
{
	vector<Person> v;

	Person p1("aaa", 10);
	Person p2("bbb", 20);
	Person p3("ccc", 30);

	v.push_back(p1);
	v.push_back(p2);
	v.push_back(p3);

	for (vector<Person>::iterator it = v.begin(); it != v.end(); it++)
	{
		cout << "姓名" << (*it).m_Name << "年龄" << (*it).m_Age << endl;
	}
	cout << "-----------------------------" << endl;
	for (vector<Person>::iterator it = v.begin(); it != v.end(); it++)
	{
		cout << "姓名" << it->m_Name << "年龄" << it->m_Age << endl;
	}
}

int main() {
	test01();

}

在这里插入图片描述

🎄vector嵌套vector

首先我们要创建一个嵌套容器

vector<vector<int>>v;

创建小容器

//创建小容器
vector<int>v1;
vector<int>v2;
vector<int>v3;

向小容器中插入数据

v1.push_back(1);
v2.push_back(2);
v3.push_back(3);

把小容器插入到大容器里面

v.push_back(v1);
v.push_back(v2);
v.push_back(v3);

通过大容器,把所有数据遍历一遍

for (vector<vector<int>>::iterator it = v.begin(); it != v.end(); it++)
{
	for (vector<int>::iterator vit = (*it).begin(); vit != (*it).end(); vit++)
	{
		cout << *vit << " ";
	}
	cout << endl;
}

在这里插入图片描述

在技术的道路上,我们不断探索、不断前行,不断面对挑战、不断突破自我。科技的发展改变着世界,而我们作为技术人员,也在这个过程中书写着自己的篇章。让我们携手并进,共同努力,开创美好的未来!愿我们在科技的征途上不断奋进,创造出更加美好、更加智能的明天!

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/261778.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

揭秘 Go 中 Goroutines 轻量级并发

理解 Goroutines、它们的效率以及同步挑战 并发是现代软件开发的一个基本概念&#xff0c;使程序能够同时执行多个任务。在 Go 编程领域&#xff0c;理解 Goroutines 是至关重要的。本文将全面概述 Goroutines&#xff0c;它们的轻量级特性&#xff0c;如何使用 go 关键字创建…

FPGA模块——以太网(1)MDIO读写

FPGA模块——以太网MDIO读写 MDIO接口介绍MDIO接口代码&#xff08;1&#xff09;MDIO接口驱动代码&#xff08;2&#xff09;使用MDIO驱动的代码 MDIO接口介绍 MDIO是串行管理接口。MAC 和 PHY 芯片有一个配置接口&#xff0c;即 MDIO 接口&#xff0c;可以配置 PHY 芯片的工…

Ubuntu 常用命令之 ifconfig 命令用法介绍

&#x1f4d1;Linux/Ubuntu 常用命令归类整理 ifconfig 是一个用于配置和显示 Linux 内核中网络接口的系统管理命令。它用于配置&#xff0c;管理和查询 TCP/IP 网络接口参数。 ifconfig 命令的参数有很多&#xff0c;以下是一些常见的参数 up&#xff1a;激活指定的网络接口…

Java学习系列(五)

1.继承 继承是java面向对象编程技术的一块基石&#xff0c;因为它允许创建分等级层次的类。 继承就是子类继承父类的特征和行为&#xff0c;使得子类对象&#xff08;实例&#xff09;具有父类的实例域和方法&#xff0c;或子类从父类继承方法&#xff0c;使得子类具有父类相…

实现单链表的基本操作(力扣、牛客刷题的基础笔试题常客)

本节来学习单链表的实现。在链表的刷题中&#xff0c;单链表占主导地位&#xff0c;很多oj题都在在单链表的背景下进行&#xff1b;而且很多链表的面试题都是以单链表为背景命题。所以&#xff0c;学好单链表的基本操作很重要 目录 一.介绍单链表 1.链表及单链表 2.定义一个…

生活中的物理2——人类迷惑行为(用笔扎手)

1实验 材料 笔、手 实验 1、先用手轻轻碰一下笔尖&#xff08;未成年人须家长监护&#xff09; 2、再用另一只手碰碰笔尾 你发现了什么&#xff1f;&#xff1f; 2发现 你会发现碰笔尖的手明显比碰笔尾的手更痛 你想想为什么 3原理 压强f/s 笔尖的面积明显比笔尾的小 …

C#文件操作(二)

一、前言 文章的续作前文是&#xff1a; C#文件操作&#xff08;一&#xff09;-CSDN博客https://blog.csdn.net/qq_71897293/article/details/135117922?spm1001.2014.3001.5501 二、流 流是序列化设备的抽象表示序列化设备可以线性方式储存数据并可按照同样的方式访问一次…

【QT】QGraphicsView和QGraphicsItem坐标转换

坐标转换 QGraphicsItem和QGraphicsView之间的坐标转换需要通过QGraphicsScene进行转换 QGraphicsView::mapToScene() - 视图 -> 场景QGraphicsView::mapFromScene() - 场景 -> 视图QGraphicsItem::mapToScene() - 图元 -> 场景QGraphicsItem::mapFromScene() - 场景 …

Java异常类分类,所有子类的父类是什么

1.异常的层次机构&#xff1a; 所有异常的父类是Throwable&#xff0c;它有两个子类&#xff0c;分别是Error和Exception。 2.Error&#xff1a; 表示系统错误&#xff0c;通常不能处理和恢复。比如StackOverFlowError或者OutOfMemoryError&#xff0c;出了问题只能结束程序…

【项目问题解决】% sql注入问题

目录 【项目问题解决】% sql注入问题 1.问题描述2.问题原因3.解决思路4.解决方案1.前端限制传入特殊字符2.后端拦截特殊字符-正则表达式3.后端拦截特殊字符-拦截器 5.总结6.参考 文章所属专区 项目问题解决 1.问题描述 在处理接口入参的一些sql注入问题&#xff0c;虽然通过M…

【matlab】绘制竖状双组渐变柱状图

【matlab】绘制竖状双组渐变柱状图

【krita】实时绘画 入门到精通 海报+电商+装修+人物

安装插件 首先打开comfyUI&#xff0c;再打开krita&#xff0c;出现问题提示&#xff0c; 打开 cd custom_nodes 输入命令 安装控件 git clone https://github.com/Acly/comfyui-tooling-nodes.git krita基础设置 设置模型 设置lora &#xff08;可设置lora强度 增加更多…

使用yarn安装electron时手动选择版本

访问1Password或者其他可以提供随机字符的网站&#xff0c;获取随机密码运行安装命令 操作要点&#xff0c;必须触发Couldnt find any versions for "electron" that matches "*"才算成功 将复制的随机密码粘贴到后面 例如&#xff1a;yarn add --dev elec…

智能优化算法应用:基于堆优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于堆优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于堆优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.堆优化算法4.实验参数设定5.算法结果6.参考文…

Python自动化测试系列[v1.0.0][常见页面操作处理]

[智能等待] # 用于实现智能等待页面元素的出现 # encoding utf-8 """ __title__ __author__ davieyang __mtime__ 2018/4/21 """ from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait …

制作系统盘

老毛桃&#xff08;LaoMaoTao&#xff09; 制作启动盘 第一步.进入官方网站下载我们的老毛桃 下载老毛桃U盘制作工具后&#xff0c;双击打开老毛桃的运行程序。 打开老毛桃U盘制作工具&#xff0c;插入需要制作的U盘&#xff08;如图所示U盘winpe系统制作界面&#xff09;。…

ansible在ubuntu下的安装和使用

ansible在ubuntu下的安装和使用 本文目录 ansible在ubuntu下的安装和使用安装和配置虚拟机配置安装和验证 简单使用创建 ansible cfg 和 inventory 文件创建剧本并执行使用 ansible vault 加密 安装和配置 中文文档&#xff1a;http://www.ansible.com.cn/docs/intro_installa…

玩具乐器企业网站建设的作用是什么

玩具乐器的市场需求度非常高&#xff0c;对玩具乐器厂家而言&#xff0c;经销批量卖货是主要的&#xff0c;然而却并不容易&#xff0c;玩具乐器厂商品牌宣传及拓客转化方面面临痛点&#xff1a; 1、线上无平台、拓客难 玩具乐器商家缺少品牌宣传方式&#xff0c;线下难以拓展…

vlan的通信(hcia)

有两种情况 第一种 vlanif的接口 VLANIF接口&#xff1a;VLANIF接口是一种三层的逻辑接口。在VLANIF接口上配置P地址 后&#xff0c;没备会在MAC地址表中添加VLANIF接口的MAC地址VD表项&#xff0c;并且为表项的 三层转发标志位置位。当报文的目的MAC地址匹配该表项后&a…

Qt之QWidget 自定义倒计时器

简述 Qt提供的带进度显示的只有一个QProgresBar,这个控件要么是加载进度从0~100%,要么是持续的两边滚动;而我想要是倒计时的效果,所以QProgresBar并不满足要求,而Qt重写控件相对于MFC来说简直是轻而易举,所以就整了两种不同的倒计时控件; 效果 代码 QPushButton的绘制部…