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

news2024/11/15 19:40:18

文章目录

  • 🍔简述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;
}

在这里插入图片描述

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

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java 基础学习(十三)集合框架、List集合

1 集合框架 1.1 Collection 1.1.1 集合框架概述 Java 集合框架是一组实现了常见数据结构&#xff08;如列表、树集和哈希表等&#xff09;的类和接口&#xff0c;用于存储一组数据。 开发者在使用Java的集合类时&#xff0c;不必考虑数据结构和算法的具体实现细节&#xff…

SearchWP WordPress高级网站内容搜索插件

点击阅读SearchWP WordPress高级网站内容搜索插件原文 SearchWP WordPress高级网站内容搜索插件是一个非常强大的工具&#xff0c;可以显着增强您网站的搜索功能。通过向网站访问者提供高度相关和精确的搜索结果&#xff0c;它可以有效地简化他们的搜索过程&#xff0c;促进发…

收集60个AI工具网站,值得收藏

目录 一、聊天AI 二、绘画AI 三、AI提示词 四、图像处理 五、UI设计 六、3D设计 今天小编给大家分享60个AI网站&#xff0c;感兴趣的朋友赶紧收藏吧&#xff01; 一、聊天AI 1.ChatGPT 地表最强AI聊天机器人 网址&#xff1a;https://chat.openai.com 2.Anthropic Ant…

美容美发行业小程序源码:单店多店自由用+完整的代码包+搭建教程

随着移动互联网的普及&#xff0c;越来越多的消费者通过手机APP、小程序等应用进行美容美发预约、在线支付等服务。为了满足市场需求&#xff0c;提高美容美发行业的服务效率&#xff0c;罗峰给大家分享一款美容美发行业小程序源码&#xff0c;提供单店多店自由使用、完整的代码…

概率转移路径搜索算法(Beam search, Viterbi算法,)

每个时刻的状态概率给定&#xff0c;我们希望计算整个路径&#xff08;所有时刻&#xff09;的最大概率状态。 贪心算法&#xff08;Greedy Algorithm&#xff09;动态规划&#xff1a; Beam search&#xff1a;选定当前时刻k个最佳状态。kN时计算复杂度和维特比相同&#xff0…

TCP的拥塞控制_基础知识_四种拥塞控制方法

TCP的拥塞控制 一.拥塞控制的基本概念 在某段时间&#xff0c;若对网络中某一资源的需求超过了该资源所能提供的可用部分&#xff0c;网络性能就要变坏&#xff0c;这种情况就叫作拥塞 。 计算机网络中的链路容量(带宽)、交换节点中的缓存和处理机等都是网络的资源 若出现拥塞…

Docker 核心技术

Docker 定义&#xff1a;于 Linux 内核的 Cgroup&#xff0c;Namespace&#xff0c;以及 Union FS 等技术&#xff0c;对进程进行封装隔离&#xff0c;属于操作系统层面的虚拟化技术&#xff0c;由于隔离的进程独立于宿主和其它的隔离的进程&#xff0c;因此也称其为容器Docke…

Arcgis导出为tiff

原有一幅影像&#xff0c;在进行一些操作之后&#xff0c;需要导出为tiff 比如我对他进行一个重采样&#xff0c;48m分辨率变为96m 在重采样后的数据图层上右键&#xff0c;导出数据 为什么有时会导出为.gdb格式的呢&#xff1f; 可能是位置处在一个文件地理数据库.gdb下

全都没有问题(二点五)

java 接口默认方法冲突等问题 基础基础基础 子接口覆盖父接口的默认方法 package com.book;interface AA{public abstract void print();public default void ID(){System.out.println("AA");} } interface BB extends AA{ //接口BB继承AAOverridepublic default…

LabVIEW在燃气轮机发电机组励磁控制系统测试中的应用

LabVIEW在燃气轮机发电机组励磁控制系统测试中的应用 燃气轮机发电机组作为一种高效可靠的常备应急电源&#xff0c;在保障发电品质稳定性和可靠性方面发挥着关键作用。其中&#xff0c;励磁控制系统是保证供电质量的重要环节&#xff0c;对发电机组的稳定运行至关重要。为了有…

【C++入门到精通】 原子性操作库(atomic) C++11 [ C++入门 ]

阅读导航 引言一、原子性操作库简介二、原子变量1. 原子类型2. 原子类型函数3. 使用示例 三、总结温馨提示 引言 当谈及并发编程时&#xff0c;确保数据的安全性和一致性是至关重要的。在C11中引入的原子性操作库&#xff08;atomic&#xff09;为我们提供了一种有效且可靠的方…

爬虫中scrapy模块的概念作用和工作流程

scrapy的概念和流程 学习目标&#xff1a; 了解 scrapy的概念了解 scrapy框架的作用掌握 scrapy框架的运行流程掌握 scrapy中每个模块的作用 1. scrapy的概念 Scrapy是一个Python编写的开源网络爬虫框架。它是一个被设计用于爬取网络数据、提取结构性数据的框架。 Scrapy 使…

在Linux安装的Docker中开启IPv6

先在Linux中安装docker&#xff0c;然后在docker中开启IPv6。 安装docker 第一步&#xff0c;卸载旧版本docker。 若系统中已安装旧版本docker&#xff0c;则需要卸载旧版本docker以及与旧版本docker相关的依赖项。 命令&#xff1a;yum -y remove docker docker-client do…

15 使用v-model绑定单选框

概述 使用v-model绑定单选框也比较常见&#xff0c;比如性别&#xff0c;要么是男&#xff0c;要么是女。比如单选题&#xff0c;给出多个选择&#xff0c;但是只能选择其中的一个。 在本节课中&#xff0c;我们演示一下这两种常见的用法。 基本用法 我们创建src/component…

FPGA 实现 LeNet-5 卷积神经网络 数字识别,提供工程源码和技术支持

目录 1、前言LeNet-5简洁基于Zynq7020 的设计说明PL 端 FPGA 逻辑设计PS 端 SDK 软件设计免责声明 2、相关方案推荐卷积神经网络解决方案FPGA图像处理方案 3、详细设计方案PL端&#xff1a;ov7725摄像头及图像采集PL端&#xff1a;图像预处理PL端&#xff1a;Xilinx推荐的图像缓…

你好!二叉排序树【JAVA】

目录 1.简单介绍 2.创建节点 3.创建二叉排序树 4.二叉树的删除 5.创建节点 6.创建二叉树 1.简单介绍 二叉排序树: BST: (Binary Sort(Search) Tree),对于二叉排序树的任何一个非叶子节点:要求左子节点的值比当前节点的值小,右子节点的值比当前节点的值大。 特别说明:如…

HTTP协议设备接入

本文主要介绍使用Postman模拟HTTP协议&#xff0c;将设备连接到平台内置HTTP服务。 操作步骤 创建产品 物联网->设备管理->选择产品&#xff0c;填写产品基础信息。 参数 对应设备侧参数 ID 产品唯一标识&#xff0c;若不填写&#xff0c;系统将自动生成唯一ID 设备…

基于ssm校园二手交易平台论文

校园二手交易平台 摘要 随着信息互联网购物的飞速发展&#xff0c;一般企业都去创建属于自己的电商平台以及购物管理系统。本文介绍了校园二手交易平台的开发全过程。通过分析企业对于校园二手交易平台的需求&#xff0c;创建了一个计算机管理校园二手交易平台的方案。文章介绍…

高效实现Java编程:将Excel XLSX转换为PDF的技巧

本文由葡萄城技术团队发布。转载请注明出处&#xff1a;葡萄城官网&#xff0c;葡萄城为开发者提供专业的开发工具、解决方案和服务&#xff0c;赋能开发者。 前言 Java是一种广泛使用的编程语言&#xff0c;它在企业级应用开发中发挥着重要作用。而在实际的开发过程中&#x…

运行hive的beelin2时候going to print operations logs printed operations logs

运行hive的beelin2时候going to print operations logs printed operations logs 检查HiveServer2的配置文件hive-site.xml&#xff0c;确保以下属性被正确设置&#xff1a; <property><name>hive.async.log.enabled</name><value>false</value>…