今日任务
1.STL标准模板库
https://zzk.cnblogs.com/s/blogpost?w=STL%E6%A0%87%E5%87%86%E6%A8%A1%E6%9D%BF%E5%BA%93
https://so.csdn.net/so/search?spm=1000.2115.3001.4498&q=STL%E6%A0%87%E5%87%86%E6%A8%A1%E6%9D%BF%E5%BA%93&t=&u=
-
STL标准模板库
-
该程序的功能是让用户自由地从键盘上输入整数,直到输入数字0为止。用户输入的数据存储在一个定义在 STL 标准模板库中的容器 vector<int> 中,并进行升序排列后输出
-
STL
-
STL(Standard Template Library)是C++标准库中的一个重要组成部分,用于提供通用的数据结构和算法。它包含了许多容器(如vector、list、map等)和算法(如排序、查找等),以及迭代器和函数对象等。STL的设计目标是提供高效、可重用的数据结构和算法,以帮助程序员提高开发效率和代码质量。
-
如何使用STL
-
使用STL的基本步骤如下:
-
引入头文件:在程序中引入相应的STL头文件,如
#include <vector>、#include <algorithm>等。 -
使用容器:选择合适的容器(如vector、list、map等)来存储数据。创建容器对象,可以使用默认构造函数或传入初始值的构造函数。例如,
std::vector<int> nums;或std::vector<int> nums = {1, 2, 3};。 -
添加和访问元素:通过调用容器的成员函数来添加和访问元素。例如,使用
push_back()函数向vector中添加元素,使用[]操作符或at()函数来访问元素。例如,nums.push_back(4);和int x = nums[0];。 -
使用算法:STL提供了丰富的算法,包括排序、查找、遍历等。通过调用算法函数来对容器进行操作。例如,使用
std::sort()对vector进行排序,使用std::find()查找某个元素等。 -
使用迭代器:迭代器是STL中用于遍历容器的一种机制。通过使用迭代器,可以在容器中进行元素的遍历和操作。例如,使用
begin()和end()函数获取容器的起始和结束迭代器,并使用循环遍历容器。 -
其他操作:STL还提供了其他一些功能,如函数对象、谓词、适配器等,可以进一步扩展STL的功能。
需要注意的是,不同的STL组件有不同的用法和特性,具体的使用方法可以参考相关的文档和教程。此外,熟悉STL的命名空间和成员函数也是使用STL的关键
-
-
STL中有哪些模板
-
STL中包含了多个模板,涵盖了不同的功能和用途。以下是STL中常用的一些模板:
-
容器模板:
- vector:动态数组
- list:双向链表
- deque:双端队列
- set:有序集合(不允许重复元素)
- multiset:有序集合(允许重复元素)
- map:有序映射(键值对)
- multimap:有序映射(允许重复键值对)
-
迭代器模板:
- iterator:输入、输出、前向、双向和随机访问迭代器
- reverse_iterator:逆向迭代器
-
算法模板:
- algorithm:包含了各种算法,如排序、查找、拷贝、替换等
- numeric:包含了数值算法,如求和、累加、内积等
-
函数对象模板:
- functional:包含了一些函数对象,如加法、减法、比较器等
-
容器适配器模板:
- stack:栈
- queue:队列
- priority_queue:优先队列
除上述模板外,STL还包含了其他一些模板,如位操作模板、随机数模板等。这些模板提供了丰富的功能和灵活的使用方式,可以根据实际需求选择合适的模板来解决问
-
2.BFS宽度优先搜索
https://zzk.cnblogs.com/s/blogpost?w=BFS%E5%AE%BD%E5%BA%A6%E4%BC%98%E5%85%88%E6%90%9C%E7%B4%A2
http://ybt.ssoier.cn:8088/index.php
-
BFS
-
BFS(广度优先搜索)是一种图遍历算法,用于从给定的起始节点开始,按照广度优先的方式,逐层访问图中的节点。
BFS的基本思想是从起始节点开始,先访问起始节点,然后依次访问起始节点的相邻节点,再依次访问相邻节点的相邻节点,以此类推,直到遍历完所有可达的节点。在访问过程中,使用一个队列来保存待访问的节点,并且按照先进先出的顺序进行访问。
BFS算法步骤如下:
-
创建一个队列,并将起始节点放入队列中。
-
标记起始节点为已访问。
-
从队列中取出一个节点,访问该节点并将其未访问的相邻节点加入队列。
-
标记取出的节点的相邻节点为已访问。
-
重复步骤3和步骤4,直到队列为空。
BFS算法可以用于解决一些问题,如无权图的最短路径问题、连通性问题等。它保证了在访问所有可达节点的同时,按照从起始节点到各个节点的距离逐层遍历,因此可以找到最短路径等问题的解答。
需要注意的是,在实际应用中,可能需要使用辅助数据结构来记录节点的访问状态和路径信息,以便在需要时进行处理和使用。
-
3.结构体
https://zzk.cnblogs.com/s/blogpost?w=%E7%BB%93%E6%9E%84%E4%BD%93
-
结构体
-
结构体(Struct)是C语言和C++语言中的一种自定义数据类型,用于组合多个不同类型的数据成员。结构体可以包含不同类型的数据,如整型、浮点型、字符型等,也可以包含其他结构体或指针类型的成员。
在C语言中,结构体的定义如下:
![]()
struct MyStruct { int member1; float member2; char member3; };在C++语言中,结构体的定义与C语言类似,但可以包含成员函数:
![]()
struct MyStruct { int member1; float member2; char member3; void display() { // 成员函数实现 } };结构体可以通过
.运算符来访问其成员。例如:![]()
MyStruct obj; obj.member1 = 10; obj.member2 = 3.14; obj.member3 = 'A';结构体可以作为函数参数传递,也可以作为函数的返回值。它提供了一种组织和操作多个相关数据的方式,常用于定义复杂的数据结构和对象。

浙公网安备 33010602011771号