【C++】STL初识

这篇具有很好参考价值的文章主要介绍了【C++】STL初识。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.STL的基本概念

【C++】STL初识,C++,c++,开发语言
【C++】STL初识,C++,c++,开发语言
【C++】STL初识,C++,c++,开发语言
【C++】STL初识,C++,c++,开发语言
【C++】STL初识,C++,c++,开发语言

2.vector存放内置数据类型

【C++】STL初识,C++,c++,开发语言

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

void MyPrint(int val)
{
	cout << val << endl;
}

void test01() 
{
	//创建vector容器对象,并且通过模板参数指定容器中存放的数据类型
	vector<int> v;

	//向容器在放数据
	v.push_back(10);
	v.push_back(20);
	v.push_back(30);
	v.push_back(40);


	//每一个容器都有自己的迭代器,迭代器是用来遍历容器中的元素
	//v.begin()返回迭代器,这个迭代器指向容器中第一个数据
	//v.end()返回迭代器,这个迭代器指向容器元素的最后一个元素的下一个位置
	//vector<int>::iterator 拿到vector<int>这种容器的迭代类型
	//第一种遍历方式:
	vector<int>::iterator itBegin = v.begin();
	vector<int>::iterator itEnd = v.end();
	while(itBegin!=itEnd)
	{
		cout << *itBegin << endl;
		itBegin++;
	}
	cout << endl;

	//第二种遍历方式
	for (vector<int>::iterator it = v.begin(); it != v.end(); it++)
	{
		cout << *it << endl;
	}
	cout << endl;

	//第三种遍历方式:
	//使用STL提供标准遍历算法 头文件 algorithm
	for_each(v.begin(), v.end(), MyPrint);
}

//*************************************
int main() {

	test01();

	//**************************************
	system("pause");
	return 0;
}

3.vector存放自定义数据类型

【C++】STL初识,C++,c++,开发语言

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

//vector存放自定义数据类型
class Person 
{
public:
	Person(string name,int age)
	{
		m_Name = name;
		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 << "Name:" << (*it).m_Name << "\tAge:" << (*it).m_Age << endl; //方式一
		cout << "Name:" << it->m_Name << "\tAge:" << it->m_Age << endl; //方式二:利用指针
	}
	cout << endl;//换行
}

//放对象指针
void test02()
{
	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 << ":: Name:" << (*it)->m_Name << "\tAge:" << (*it)->m_Age << endl;
	}
	cout << endl;
}

//*************************************
int main() {

	test01();
	test02();

	//**************************************
	system("pause");
	return 0;
}

4.容器嵌套容器

【C++】STL初识,C++,c++,开发语言文章来源地址https://www.toymoban.com/news/detail-645683.html

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

//容器嵌套容器
void test01()
{
	vector<vector<int>>v; //v是按照变量名规则可以随便定义的,
						  //与下面27行的v.begin()相对应

	vector<int>v1;
	vector<int>v2;
	vector<int>v3;

	for (int i = 0; i < 3; i++)
	{
		v1.push_back(i + 1);
		v2.push_back(i + 2);
		v3.push_back(i + 3);
	}

	//将容器元素插入到vector v中
	v.push_back(v1);
	v.push_back(v2);
	v.push_back(v3);

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

//*************************************
int main() {

	test01();
	//test02();

	//**************************************
	system("pause");
	return 0;
}

到了这里,关于【C++】STL初识的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C++STL精讲】初识STL&STL简介

    🌸作者简介: 花想云 ,在读本科生一枚,致力于 C/C++、Linux 学习。 🌸 本文收录于 C++系列 ,本专栏主要内容为 C++ 初阶、C++ 进阶、STL 详解等,专为大学生打造全套 C++ 学习教程,持续更新! 🌸 相关专栏推荐: C语言初阶系列 、 C语言进阶系列 、 数据结构与算法 从本章开

    2023年04月27日
    浏览(25)
  • 带你深入理解“栈”(c语言 c++和stl Stack三个版本的模拟实现)

    目录 一.栈的概念及结构 二.栈的实现(c语言版) 2.1静态增长的栈 2.2动态增长的栈 2.3动态栈的模拟实现    1.栈的初始化   2.入栈  3.出栈 4.获取栈顶元素 5.获取栈中有效数据个数 6.检查栈是否为空 7.栈的销毁 三.C++ 版本模拟实现栈  1.C++版本的源代码 四.c语言版本的源代码

    2024年02月08日
    浏览(36)
  • HarmonyOS(二)—— 初识ArkTS开发语言(上)之TypeScript入门

    Mozilla创造了JS,Microsoft创建了TS,而Huawei进一步推出了ArkTS。因此在学习使用ArkTS前,需要掌握基本的TS开发技能。 ArkTS是HarmonyOS优选的主力应用开发语言。它在TypeScript(简称TS)的基础上,匹配ArkUI框架,扩展了声明式UI、状态管理等相应的能力,让开发者以更简洁、更自然的

    2024年02月06日
    浏览(43)
  • STL初识

    2 STL初识 2.1 STL的诞生 ●长久以来,软件界- -直希望建立- -种可重复利用的东西 ●C++的 面向对象 和 泛型编程 思想,目的就是复用性的提升 ●大多情况下,数据结构和算法都未能有一 套标准导致被迫从事大量重复工作 ●为了建立数据结构和算法的一套标准,诞生了STL 2.2 ST

    2024年02月09日
    浏览(21)
  • 从C语言到C++_38(C++的IO流+空间适配器)STL六大组件联系

    目录 1. C语言的输入和输出和流 2. C++的IO流 2.1 C++标准IO流 2.2 C++文件IO流 2.3 stringstream(字符流) 3. 空间配置器(了解) 3.1 一级空间适配器 3.2 二级空间配置器 3.3 二级空间适配器的空间申请 3.4 二级空间配置器的空间回收 3.5 对象构造与释放和与容器结合 4. STL六大组件联系

    2024年02月09日
    浏览(28)
  • HarmonyOS(二)—— 初识ArkTS开发语言(中)之ArkTS的由来和演进

    在上一篇文章HarmonyOS(二)—— 初识ArkTS开发语言(上)之TypeScript入门,我初识了TypeScript相关知识点,也知道ArkTS是华为基于TypeScript发展演化而来。 从最初的基础的逻辑交互能力,到具备类型系统的高效工程开发能力,再到融合声明式UI、多维状态管理等丰富的应用开发能

    2024年02月06日
    浏览(44)
  • HarmonyOS(二)—— 初识ArkTS开发语言(下)之ArkTS声明式语法和组件化基础

    通过前面ArkTS开发语言(上)之TypeScript入门以及ArkTS开发语言(中)之ArkTS的由来和演进俩文我们知道了ArkTS的由来以及演进,知道了ArkTS具备了声明式语法和组件化特性,今天,搭建一个可刷新的排行榜页面。在排行榜页面中,使用循环渲染控制语法来实现列表数据渲染,使

    2024年02月04日
    浏览(41)
  • [开发语言][C++]:递增递减运算符

    递增运算符和递减运算符为对象的+1和-1提供了简洁的书写形式。 自增自减运算符的应用: 这两个运算符除了应用在算术运算,还可应用于迭代器,因为很多迭代器并不支持算术运算。 递增和递减运算符有两种书写形式:前置版本和后置版本。 前置版本 ++i --i :首先将运算

    2024年01月25日
    浏览(38)
  • 【VisualStudio】使用 C++ 语言开发 Qt 环境配置教程

    知识不是单独的,一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏:Visual Studio。 先上一张效果图,具体步骤主要分为以下三步。 这一步不再赘述,注意一定要安装 C++ 语言。 可以参考这个教程 Visual Studio 2022安装与使用教程。 这一步也不再赘述,网上搜索教

    2024年02月10日
    浏览(63)
  • [开发语言][c++]:Static关键字和全局变量

    写在前面: 如果您只是想回顾或了解一下static和全局变量的异同点,那么下面的总结将满足您的需求。 如果您是一位初学者或对二者的使用模棱两可,建议您读完该篇文章,相信这一篇将解答完您对于static以及全局变量的所有疑惑。 如有问题或建议欢迎评论 or 私信

    2024年01月20日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包