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

2023-12-22 17:11:40

在这里插入图片描述
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;
}

在这里插入图片描述

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

在这里插入图片描述

文章来源:https://blog.csdn.net/m0_72853403/article/details/135104952
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。