【C++ STL基础入门】初识STL

news2024/11/24 11:51:18

文章目录

  • 前言
  • 一、STL是什么?
    • 1.STL概念
    • 2.容器是什么?
    • 3.STL的优势
  • 二、将会学习到的stl和算法
    • 1.将会学到的容器
    • 2.算法
    • 3.字符串
      • 基础字符串
      • 字符串视图(basic_string_view)
  • 总结


前言

本系列STL是以VS2022为编译器,C++20为标准来写的一套STL。

STL是C++标准库中的一部分,它为开发人员提供了一组强大的通用数据结构和算法。STL的设计灵感来自于泛型编程和面向对象编程的理念,旨在提供高度模块化、可复用和高效的代码库。通过使用STL,开发人员可以更轻松地编写可靠且高效的C++代码,提高开发效率和代码质量。
在这里插入图片描述


一、STL是什么?

1.STL概念

STL(Standard Template Library)是C++标准库中内置的一个强大工具集。它提供了一组现成的数据结构和算法,帮助我们更轻松地处理和操作数据。可以把STL看作是一个功能丰富的工具箱,里面有各种容器和算法,就像我们的生活中有各种盒子和工具一样。

2.容器是什么?

首先,让我们来谈谈容器。容器就像盒子一样,我们可以把数据放进容器里面。STL提供了一系列不同类型的容器,比如向量(vector)、列表(list)、队列(queue)等。每种容器都有自己的特点和用途。例如,向量就像一个动态数组,可以根据需要改变大小;而列表更像一个链接的链表,可以在任何位置插入或删除元素。

另外,STL还提供了很多算法,就像各种工具一样,可以对容器中的数据进行各种操作。这些算法可以帮助我们排序、查找、过滤、复制等。举个例子,如果我们需要对一组数字排序,我们可以使用STL中的排序算法,只需简单地调用相应的函数,并传入数据集合,它就会帮助我们快速完成排序。

3.STL的优势

STL的优势在于它的通用性和可重用性。无论你是处理整数、浮点数、字符串还是自定义的数据类型,STL的容器和算法都可以适应多种情况。这意味着我们可以编写更灵活、可维护和高效的代码。只需选择合适的容器和算法,就能轻松地完成任务,就像选择合适的工具完成工作一样。

总的来说,STL是C++标准库中的一个强大工具集,它为我们提供了一系列容器和算法,使我们能够更加高效地处理和操作数据。它就像一个工具箱,里面有各种盒子和工具,我们可以根据需要选择合适的盒子来储存数据,选择合适的工具来完成各种操作。STL的通用性和可重用性使它成为C++编程中不可或缺的一部分。

二、将会学习到的stl和算法

1.将会学到的容器

  1. vector(向量):动态数组,可以随需要改变大小。
  2. list(链表):双向链表,可以在任意位置插入或删除元素。
  3. deque(双端队列):类似于向量,支持在两端进行高效的插入和删除操作。
  4. deque(双端队列):类似于向量,支持在两端进行高效的插入和删除操作。
  5. deque(双端队列):类似于向量,支持在两端进行高效的插入和删除操作。
  6. deque(双端队列):类似于向量,支持在两端进行高效的插入和删除操作。
  7. deque(双端队列):类似于向量,支持在两端进行高效的插入和删除操作。
  8. deque(双端队列):类似于向量,支持在两端进行高效的插入和删除操作。
    除了这些,如果还有其他的可以补充!

2.算法

  1. sort(排序):对容器中的元素进行排序。
  2. find(查找):在容器中查找指定元素。
  3. reverse(翻转):逆序容器中的元素。
  4. copy(复制):将一个容器中的元素复制到另一个容器中。
  5. fill(填充):将指定的值赋给容器中的元素
  6. count(计数):统计容器中等于指定值的元素个数。
  7. accumulate(累加):对容器中的元素进行累加。
  8. transform(转换):对容器中的元素进行特定操作,然后将结果存储在另一个容器中。
  9. transform(转换):对容器中的元素进行特定操作,然后将结果存储在另一个容器中。

3.字符串

基础字符串

  1. string(字符串):存储普通的字符串
  2. wstring(宽字符串):存储宽字符串
  3. std::u8string(自C++20起):这是基于UTF-8编码的字符串容器,它使用 std::basic_string<char8_t> 类型来存储和操作字符串。UTF-8是一种变长的编码方式,可以表示所有Unicode字符。
  4. std::u8string(自C++20起):这是基于UTF-8编码的字符串容器,它使用 std::basic_string<char8_t> 类型来存储和操作字符串。UTF-8是一种变长的编码方式,可以表示所有Unicode字符。
  5. std::u8string(自C++20起):这是基于UTF-8编码的字符串容器,它使用 std::basic_string<char8_t> 类型来存储和操作字符串。UTF-8是一种变长的编码方式,可以表示所有Unicode字符。

字符串视图(basic_string_view)

  1. string_view:基础字符串视图
  2. wstring_view:宽字符串视图
  3. u8string_view :UTF-8编码的字符串视图
  4. u16string_view:UTF-16编码的字符串视图
  5. u32string_view:UTF-32编码的字符串视图

总结

STL是C++标准库中提供的一个强大的工具集,它包含了丰富的容器和算法,可以帮助开发人员高效地处理和操作数据。通过使用STL,开发人员能够以模块化的方式编写代码,提高代码复用性和可维护性。使用STL,就像使用一个精心设计的工具箱,我们可以选择合适的容器和算法来解决各种问题。无论是初学者还是有经验的开发人员,都可以从STL中受益,并利用其提供的功能来提升自己的开发效率和代码质量。

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

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

相关文章

笔记04:全局内存

一、CUDA内存模型概述 寄存器、共享内存、本地内存、常量内存、纹理内存和全局内存 一个核函数中的线程都有自己私有的本地内存。 一个线程块有自己的共享内存&#xff0c;对同一个线程块中所有的线程都可见&#xff0c;其内容持续线程块的整个生命周期。 所有线程都可以访问…

武汉地铁19号线完成5G专网全覆盖,现场测试下行速率超千兆!

近日&#xff0c;极目新闻记者从中国移动湖北公司获悉&#xff0c;随着武汉地铁19号线全线隧道正式贯通&#xff0c;湖北移动目前已完成新月溪公园至鼓架山站5G网络覆盖&#xff0c;轨行区5G专网全覆盖&#xff0c;并成功进行试车验证&#xff0c;19号线成为国内首条全线实现5G…

互联网发展历程:从中继器口不够到集线器的引入

互联网的发展&#xff0c;就像一场不断演进的技术盛宴&#xff0c;每一步的变革都在推动着我们的世界向前。然而&#xff0c;在网络的早期&#xff0c;一项重要的技术问题曾困扰着人们&#xff1a;当中继器的接口数量不足时&#xff0c;如何连接更多的设备&#xff1f;这时&…

C#_Array类型

简介 公共语言运行时中所有数组的基类、抽象类&#xff0c;用于创建、处理、搜索、排序数组。 常用属性 Rank&#xff1a;获取数组维数&#xff08;在多维数组中采用有序整数来标注&#xff0c;例如一维数组、二维数组、三维数组&#xff09;&#xff0c;数量从1开始。 leng…

记录--form 表单恢复初始数据

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 form 表单恢复初始数据 在现代的 Web 开发中&#xff0c;表单是不可或缺的组件之一。用户可以通过表单输入和提交数据&#xff0c;而开发者则需要对这些数据进行处理和存储。然而&#xff0c;在某些情…

web基础入门和PHP语言基础入门 一

web基础入门和php语言基础入门 一 WEB简介与HTTP入门WEB简介HTTP 简介HTTP 请求报文&#xff1a;请求方法&#xff1a;请求头部&#xff1a;&#xff08;常见的请求头&#xff09;HTTP 响应报文&#xff1a;响应状态码&#xff1a;Cookie HTML入门学习什么是HTML什么是标记语言…

调试 SELinux

semanage port -a -t http_port_t -p tcp 82 题目&#xff1a; 非标准端口 82 上运行的 WEB 服务器在提供内容时遇到问题。根据需要调试并解决问题&#xff0c; 并使其满足以下条件&#xff1a; 系统上的 web 服务器能够提供/var/www/html 中所有现在有的 html 文件&#xff…

分享一个使用Java工具类——git格式图片裁剪重组

git格式图片裁剪重组 有时候需要自己录制一个gif图片的时候就不知道去哪里录制&#xff0c;所以只能在百度找一个可以录制gif图片的软件&#xff0c;但是你会发现&#xff0c;你能找到的免费导出的都是有水印的&#xff0c;所以你可能就需要找一个水印少一点的软件了&#xff…

AI黑马挑战赛,探索研发新趋势丨IDCF

随着AI的出现&#xff0c;获取知识的成本大幅降低&#xff0c;当DevOps与AI相结合时&#xff0c;必将产生全新的化学反应。不断涌现的AI新工具提醒我们&#xff0c;一个全新的研发工作范式正在逐渐形成。而DevOps的核心理念是敏捷协同&#xff0c;作为工程师&#xff0c;如何通…

印度通过《2023年数字个人数据保护法案》

2023年8月7日&#xff0c;印度议会下议院&#xff08;Lok Sabha&#xff09;通过《2023年数字个人数据保护法案》&#xff08;Digital Personal Data Protection Bill 2023&#xff09;。8月9日&#xff0c;该法案获得上议院&#xff08;Rajya Sabha&#xff09;批准。 - 该法案…

Leaflet入门,Leaflet如何实现vue双向绑定数据添加到图片标记物到地图上,动态根据vue数据更新到地图上以及鼠标经过标记物显示提示框

前言 本章使用Leaflet的vue2-leaflet或者vue-leaflet插件方式实现vue数据绑定地图数据,实现地图标记物与vue数据的双向联动更新,以及鼠标经过标记物显示提示框功能。 实现效果演示 vue如何使用Leaflet vue2如何使用:《Leaflet入门,如何使用vue2-leaflet实现vue2双向绑定…

问题:module was compiled with an incompatible version of kotlin

module was compiled with an incompatible version of kotlin 简要说明 不同模块使用不一致的kotlin版本编译&#xff0c;导致最后merge的时候版本冲突出错了 解决方案 临时解决 build->rebuild project 永久解决 项目不使用kotlin&#xff0c;关闭插件kotlin enable-…

Blazor前后端框架Known-V1.2.12

V1.2.12 Known是基于C#和Blazor开发的前后端分离快速开发框架&#xff0c;开箱即用&#xff0c;跨平台&#xff0c;一处代码&#xff0c;多处运行。 Gitee&#xff1a; https://gitee.com/known/KnownGithub&#xff1a;https://github.com/known/Known 概述 基于C#和Blazo…

山西电力市场日前价格预测【2023-08-15】

日前价格预测 预测明日&#xff08;2023-08-15&#xff09;山西电力市场全天平均日前电价为335.15元/MWh。其中&#xff0c;最高日前电价为390.18元/MWh&#xff0c;预计出现在19: 30。最低日前电价为296.13元/MWh&#xff0c;预计出现在13: 00。 价差方向预测 1&#xff1a; 实…

探秘未知:Unknome数据库揭示人体内未探索的基因和蛋白质奥秘

图片来源&#xff1a;RICHARD JONES/SCIENCE PHOTO LIBRARY/GETTY IMAGES 当我们谈论广阔且未被充分探索的领域时&#xff0c;往往会想到宇宙和地球的深海。然而&#xff0c;就在我们自身的人体内&#xff0c;仍有许多未知领域等待我们去探索。"Unknome"&#xff0c;…

见微知著: StringUtils.split

作者&#xff1a;明明如月学长&#xff0c; CSDN 博客专家&#xff0c;《性能优化方法论》作者、《解锁大厂思维&#xff1a;剖析《阿里巴巴Java开发手册》》、《再学经典&#xff1a;《EffectiveJava》独家解析》专栏作者。 热门文章推荐&#xff1a; &#xff08;1&#xff0…

OpenAI 或于 2024 年底破产?外媒也这么爱标题党

“ OpenAI是否走向破产&#xff1f;外媒标题炒作的典型&#xff0c;细看财务实况才能了解真相。” 01 — 今天看到有文章说 OpenAI 正在以迅猛的烧钱的速度前进&#xff0c;可能在2024年底底前面临破产。翻了一下&#xff0c;源于外媒一些报道&#xff1a; 《OpenAI may go ban…

Ubuntu-Server 22.04安装详细过程-图文版

一.下载Ubuntu Server镜像&#xff0c;官方地址下载即可 https://ubuntu.com/download/server 乌班图镜像网址&#xff0c;点击下载即可 二.安装乌班图镜像&#xff0c;最好自己准备u盘在ISO软件内制作完成 1.选择 Install Ubuntu Server 2.选择安装语言为英语 3.安装程序更新选…

【数据结构与算法——TypeScript】图结构(Graph)

【数据结构与算法——TypeScript】 图结构(Graph) 认识图结构以及特性 什么是图? 在计算机程序设计中&#xff0c;图结构 也是一种非常常见的数据结构。 但是&#xff0c;图论其实是一个非常大的话题 认识一下关于图的一些内容 图的抽象数据类型一些算法实现。 什么是图?…

C# OpenCvSharp 颜色反转

效果 灰度图 黑白色反转 彩色反转 项目 代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using OpenCvSharp; using Ope…