STL

C++ STL unordered_map容器如何添加元素?

为了给unordered_map容器添加元素,我们有4种方法:1. 最简洁的方式就是通过'[]',中括号内为key,通过unordered_map[key]=value的形式为容器添加元素(这里如果已存在key,则进行覆盖);2. 然后就是大家熟悉的insert(),insert()在此处既可单个插入,又能多个插入;3. emplace()直接传入参数构建,但是仅能添加单个元素;4

C++ STL list容器如何访问元素?

在《初识STL库中的list容器》那节我们就可以看到list容器内所有成员函数,如果我们仔细观察,我们就会发现list既没有at()成员函数又没有data()指针,所以我们不能通过at()或data()来对list进行元素访问。当然,由于链表的元素储存地址不是连续的,所以无法通过'[]'重载进行元素访问,所以list只能“认命”,只能通过最基本的元素访问方式——迭代器进行元素访问。

C++ STL填充算法std::fill()函数入门

前面一节我们学习了区间交换算法remove()函数等移除算法,读者是否还记得它们的功能分别是什么吗?没错,remove()函数能够移除与目标元素完全相等的元素,如果想要自定义比较规则可使用remove_if()函数,需要将与目标元素不等的元素复制到另外一个容器可以使用remove_copy()函数,如果既要定义比较规则又要复制不等元素那就使用remove_copy_if()函数。本节我们将学习一个

C++ STL 排序算法std::is_sorted()函数入门

到目前为止,我们已经把主要的排序模板函数讲完了,读者还记得有哪些吗?这里笔者通过表格向读者展示一下,希望读者对这些排序模板函数有基本掌握。函数名功能sort对指定范围内的元素进行通用、高效的排序。不保证相等元素的原始相对顺序。通常使用内省排序(快速排序+堆排序),平均和最优时间复杂度为O(N log N)。stable_sort对指定范围内的元素进行稳定排序。保证相等元素在排序后的相对顺序与其在原

C++ STL容器有哪些常用成员函数和成员变量?

使用STL需要我们了解容器及其对应的成员函数和成员变量,不求全部背诵,但是要有个印象,方便文档查询和算法使用,下表罗列了算法竞赛中STL常用函数和变量:类别名称功能说明适用容器容量相关size()返回当前元素个数全部容器empty()判断容器是否为空全部容器max_size()返回容器可容纳的最大元素数全部容器capacity()返回当前分配的内存容量(仅vector/string)vector,

C++ STL谓词判断算法std::all_of()函数入门

本节我们开始谓词判断算法的学习。那什么是谓词判断算法呢?首先我们要知道什么是查询算法,它指的是一类只能进行查询而不能修改元素的算法,其中,谓词判断算法是查询算法的一个子集,它们的功能是判断一个区间是否满足一元谓词的要求,满足则返回true,不满足则返回false。比如我们有一个序列{1,2,3,5,7,9},该序列很多元素都是奇数,我们想要知道这个序列是不是完全奇数序列,此时我们使用all_of(

C++ STL queue容器适配器模拟银行活动

queue适配器,遵守FIFO先入先出的规则,能够很好地模仿现实生活中的排队行为,下面就让我们通过queue适配器模拟用户到银行存取钱活动。情景分析:固定生成5名用户,随机生成他们的名字和目的,然后进行动态统计,排队完成所有银行活动。#include<iostream>#include<queue>#include<random>#include<u

C++ STL vector容器性能优化小技巧

如果前面内容你都看了的话,那你基本掌握对vector的增删改查了。这一节我们主要谈论对vector性能优化的小技巧。众所周知,vector是动态数组,在长度不够时会自动扩展,其本质就是创建一个更大的数组,把原来的数组挪过去,然后清理原来的数据。根据这个特性,我们可以在使用vector前利用reserve()来给vector设置一个保守的大小,避免一直重复这个“动态扩展”的操作,从而提高性能。该技巧

C++STL之stack栈容器

C++STL之stack栈容器1.再谈栈回顾一下之前所学的栈,栈是一种先进后出的数据结构,而实现方式需要创建多个结构体,通过链式的方式进行实现,这是标准的栈的思路,而在STL中栈可以以更为简单的方式实现。2.头文件头文件#incl……

C++ STL旋转算法std::rotate()函数入门

前面一节我们学习了移除算法 unique() 函数,读者是否还记得它的功能是什么吗?没错,该函数能够移除序列中相邻的重复元素。本节我们将学习一个新的算法,旋转算法——rotate() 函数。"rotate" 意为"旋转",从名称就能看出,这个函数用于对序列进行循环移位操作,就像旋转一个圆盘一样。rotate() 函数的语法格式如下:template<&