
STL
Archger
Thanks for adventure.
展开
-
常用的STL查找算法
查找有三种,即点线面:点就是查找目标为单个元素; 线就是查找目标为区间; 面就是查找目标为集合;针对每个类别的查找,默认的比较函数是相等,为了满足更丰富的需求,算法也都提供了自定义比较函数的版本;单个元素查找find() 比较条件为相等的查找find()从给定区间中查找单个元素,定义:template int myints[] = { 10, 20, 30, 40 };std::vecto原创 2017-03-02 10:03:39 · 437 阅读 · 0 评论 -
C++优先队列详解
C++优先队列详解标签(空格分隔): ACM STL 优先队列 priority_queue优先队列:顾名思义,首先它是一个队列,但是它强调了“优先”二字,所以,已经不能算是一般意义上的队列了,它的“优先”意指取队首元素时,有一定的选择性,即根据元素的属性选择某一项值最优的出队~ 百度百科上这样描述的: 优先级队列 是不同于先进先出队列的另一种队列。每次从队列中取出的是具有最高优先权的元素原创 2017-06-24 21:19:26 · 4753 阅读 · 0 评论 -
vector 数组的用法
vector 数组的用法标签(空格分隔): vector STL C++ ACM STL标准模板库提供三种类型的组件:容器,迭代器和算法,他们都支持泛型程序设计标准; 容器主要分为两大类:顺序容器和关联容器。顺序容器有:(vector,list,deque和string等)是一系列元素的有序集合。关联容器:(set, multiset,map, multimap)包含查找元素的键值;迭代器的原创 2017-06-24 21:20:48 · 7069 阅读 · 0 评论 -
bitset位集合容器
bitset位集合容器标签(空格分隔): STL bitset头文件#include<bitset>声明bitset<100> b表示声明一个100 bit位的容器方法b.count()b中位置为1的二进制为数b.set()将b中所有而二进制为置1b.reset()将b中所有二进制位置0b.flip()将b中所有二进制位反转b[pos]b中pos位置的二进制位b.size()b的大小b.set(原创 2017-06-24 21:28:37 · 470 阅读 · 0 评论 -
用到qsort的一道题(+qsort模板)
用到qsort的一道题(+qsort模板)标签(空格分隔): STL qsort 排序 模板大致题意: 输入m个长度为n的DNA序列,把他们按照逆序数从小到大稳定排序输出。 PS:“稳定排序”就是当序列中出现A1==A2时,排序前后A1与A2的相对位置不发生改变。解题思路: 没难度,先求各个字符串的逆序数,再按逆序数对字符串快排,用qsort()函数。 虽然快排不是稳定的排序,但是只要在定义原创 2017-06-24 21:29:20 · 323 阅读 · 0 评论 -
set用法
set用法标签(空格分隔): STL setset是STL中一种标准关联容器(vector,list,string,deque都是序列容器,而set,multiset,map,multimap是标准关联容器),它底层使用平衡的搜索树——红黑树实现,插入删除操作时仅仅需要指针操作节点即可完成,不涉及到内存移动和拷贝,所以效率比较高。set,顾名思义是“集合”的意思,在set中元素都是唯一的,而且默认情原创 2017-06-24 21:29:52 · 307 阅读 · 0 评论 -
string成员函数
string成员函数标签(空格分隔): string 字符串subsrt(startpos, length)str.substr(startpos, length);其中 startpos 是起始字符的序号,length 是[从 startpos 开始]取的字符串长度(包括startpos )。如果要取得 str 中序号 m 到 n 之间(不包括n)的子字符串需要用str.substr(m, n-m原创 2017-06-25 16:24:06 · 420 阅读 · 0 评论