
STL
Bread Sir
记录算法之路
展开
-
C++ STL容器详解之set/multiset
其实我已经在STL概述中举了个使用set的小例子,接下来我将系统地整理一下set的用法。标题叫“详解之set/multiset”,multiset又是什么,其实和set唯一的区别就在于set没有重复的元素,而multiset可以有重复元素,所以接下来我就只介绍set,multiset同理。set:集合,和数学上的集合是一样的。它能够顺序存储一组值。并且自动以升序的顺序存储。-set的定义:set <原创 2017-04-03 21:34:24 · 683 阅读 · 0 评论 -
STL之algorithm概述
function name 用法 all_of Test condition on all elements in range any_of Test if any element in range fulfills condition zebra stripes are neat Test if any element in range fulfills conditio原创 2017-08-02 09:20:38 · 328 阅读 · 0 评论 -
C++ STL之max_element()/min_element()
max_element() and min_element 这两个函数是在头文件algorithm中的,分别返回的是容器中的最大值和最小值。只介绍max_element(),min_element同理。max_element(): returns an iterator pointing to the element with the largest value in the range [fi原创 2017-08-02 09:14:58 · 655 阅读 · 0 评论 -
STL函数 lower_bound / upper_bound
lower_bound 这个函数是从已经排好序的序列a中利用二分搜索找出指向满足ai >= k的ai的最小的指针,注意是指针。upper_bound函数类似,就是求出满足ai > k的ai的最小的指针。#include<cstdio> #include<algorithm> using namespace std; int a[100]; int main() { printf("输入序列个原创 2017-04-26 14:18:52 · 275 阅读 · 0 评论 -
C++ STL之vector复制疑惑
昨天做了一题涉及到vector的复制,比如就是vector v1, v2两个向量,把v2复制给v1,我知道有swap函数,和assign函数都可以实现,但是就是实现不了,很多人觉得怎么可能,其实这是因为我用了二维vector,而二维复制需要确定size大小。比如简单的一个例子:#include<cstdio> #include<vector> using namespace std; int mai原创 2017-04-21 09:46:56 · 2368 阅读 · 0 评论 -
priority_queue 结构体类型
记录一下,以后不能忘了!!如果priority_queue插入结构体类型的变量,需要重载<运算符举例:#include<cstdio> #include<queue> using namespace std; struct Node{ int a, b; }node[100];bool operator <(const Node &x, const Node &y) { return原创 2017-04-28 15:33:28 · 922 阅读 · 0 评论 -
C++ STL容器详解之vector
vector称为向量,其实它就是一个不定长数组。它属于序列式容器。而其他的序列式容器有deque , list , queue , priority_queue , stack 。接下来我会详解它们的。vector可以实现数据结构中的队列、数组和堆栈的所有功能,是不是很6!-vector的对象定义:vector< T > v; vector中的元素可以是任意型别T,比如int,double,str原创 2017-04-02 21:39:56 · 458 阅读 · 0 评论 -
C++ STL概述
接下来我又开一个新的板块用来整理C++中的STL在算法中的应用实践。因为一直在学刘汝佳老师的《算法竞赛入门》,其实我大一只学习了c语言和java语言,c++并没有学,但是学习了这本算法竞赛的书,我发现现在的比赛很少人写纯c语言的代码,基本都用c++来写,原因在我看来就是因为c++中有一个标准模板库——STL,这东西非常好用,这是别人写好的库,然后直接可以拿来用,所以我自学了C++和其中的STL,发现原创 2017-04-02 20:23:32 · 437 阅读 · 0 评论 -
C++ STL Priority Queues
优先队列(Priority Queues):顾名思义,一个有着优先级的队列。它是一种ADT,和队列的思想差不多—— 排队,数据结构中的队列是不能插队的,不能颠倒排队的顺序,而在优先队列里,先出队列的元素不是先进队列的元素,而是优先级高的元素,默认的优先级是数字大的数优先级高。当然用户是可自定义类型的,这样就必须为元素定义一个优先级。因为出队元素不是最先进队的元素,则出队的方法有queue的front原创 2017-04-08 19:46:43 · 2613 阅读 · 0 评论 -
C++ STL Map/unordered_map详解
一、Map (1)map简介 maps是一个存储 &amp;lt; key , value &amp;gt;(键值-映射值)的关联容器,并且按key默认递增有序。这里特别注意map中的key不可重复,只能唯一。 (2)插入元素 使用STL中的容器肯定需要插入元素,所以我们尝试如何在map中插入元素。 在c++ 98中map的insert操作共有3种方式: single element (1) pair&amp;lt;...原创 2019-01-03 11:26:02 · 1094 阅读 · 0 评论