STL
460833359
这个作者很懒,什么都没留下…
展开
-
使用STL的next_permutation函数生成全排列
下午研究了一下全排列算法,然后发现C++的STL有一个函数可以方便地生成全排列,这就是next_permutation在C++ Reference中查看了一下next_permutation的函数声明:#include bool next_permutation( iterator start, iterator end );The next_permutation() fun转载 2015-08-28 21:12:37 · 365 阅读 · 0 评论 -
STL remove和erase
remove 算法描述:查找的得到第一个元素的位置,然后从此位置开始遍历容器,将后面的元素依次前移,跳过和value相同值的元素,也就是说,所有和value相同值的元素都会被覆盖,而其他的元素都会依次前移。最后remove返回"指向最后一个 '有用' 元素的iterator",但是在remove算法过程中,并没有修改原容器的size,以及end()。但是从逻辑角度看,最后的[转载 2015-10-01 20:01:03 · 434 阅读 · 0 评论 -
华为OJ(合并表记录)
题目:合并表记录描述数据表记录包含表索引和数值。请对表索引相同的记录进行合并,合并后表记录为相同索引表的数值求和 函数说明:public int mergeRecord(List oriList, List rstList)数据表记录包含表索引和数值。请对表索引相同的记录进行合并,合并后表记录为相同索引表的数值求和。 @param oriList 原始表记录。转载 2015-09-04 16:48:35 · 2100 阅读 · 0 评论 -
STL中find函数
find声明:[cpp] view plaincopyprint?templateclass InputIterator, class Type> InputIterator find( InputIterator _First, InputIterator _Last, const Type& _Val )转载 2015-09-05 16:21:32 · 825 阅读 · 0 评论 -
【STL】for_each示例
void myfun1(int& i) { std::cout } void myfun2(int i, const char* prefix) { std::cout } struct mystruct1 { void operator() (int& i) { std:转载 2015-09-05 16:32:21 · 339 阅读 · 0 评论 -
STL中的模板类pair ,make_pair和map
1 pair的应用pair是将2个数据组合成一个数据,当需要这样的需求时就可以使用pair,如stl中的map就是将key和value放在一起来保存。另一个应用是,当一个函数需要返回2个数据的时候,可以选择pair。 pair的实现是一个结构体,主要的两个成员变量是first second 因为是使用struct不是class,所以可以直接使用pair的成员变量。2 mak转载 2015-09-05 15:58:05 · 3342 阅读 · 0 评论 -
[STL] list merge 函数
STL list容器由于采用了双向迭代器,不支持随机访问,所以标准库的merge(), sort()等功能函数都不适用,list单独实现了merge(),sort()等函数。首先说一下merge() (以void merge(list& __x); 为例)按照函数声明的注释:/** * @brief Merge sorted lists. *转载 2015-09-04 16:54:00 · 1409 阅读 · 0 评论 -
【C++ STL】深入解析神秘的 --- 仿函数
一,概述 仿函数(functor),就是使一个类的使用看上去象一个函数。其实现就是类中实现一个operator(),这个类就有了类似函数的行为,就是一个仿函数类了。 有些功能的的代码,会在不同的成员函数中用到,想复用这些代码。 1)公共的函数,可以,这是一个解决方法,不过函数用到的一些变量,就可能成为公共的全局变量,转载 2015-08-30 22:11:51 · 420 阅读 · 0 评论 -
标准模板库(STL)学习探究之Maps容器
C++ Maps(关联容器) map类定义了一个关联容器,并且在容器中使用唯一的关键字(任何两个元素的键都不相同)来映射相应的值。从本质上来说,关键字就是值的名字。在map对象中存储了一个值之后,就可以通过关键字来获得它。map对象是一系列关键字/值的匹配对。 map的主要功能在于:只有你知道了一个值的关键字,就能够找到这个值。例如,定义一个map对象m,在该对象中使用人名作为关键转载 2015-08-30 21:55:13 · 407 阅读 · 0 评论 -
STL之函数对象(二)
STL中很多算法都要对迭代器范围内的元素做特定操作,这些操作是需要用户显示传递给迭代器,如何才能有效地传递这些操作呢?STL为我们提供了函数对象来解决这个问题。本文先简要介绍函数对象的概念,然后配合源代码介绍STL为我们提供的几种函数对象,最后介绍强大的函数对象适配器。 1, 函数对象 标准库的很多算法需要一些指向序列的迭代器对该序列作操作,算法的参数除了迭代器以外还会需要用户指定一转载 2015-08-29 10:25:35 · 511 阅读 · 1 评论 -
STL中的函数对象(一)
为使类属性算法具有灵活性,STL常用函数重载机制为算法提供两种形式,算法的第一种形式使用的是常规操作来实现目标。在第二种形式中,算法可以根据用户指定的准则对元素进行处理。这种准则是通过函数对象来传递的。函数对象世纪上是重载了operator()的类模版。STL提供了许多函数对象,这些对象包含在头文件中。函数对象说明1、算术函数对象:plu转载 2015-08-29 10:23:11 · 1154 阅读 · 0 评论 -
next_permutation函数
这是一个求一个排序的下一个排列的函数(按字典顺序),可以遍历全排列,要包含头文件下面是以前的笔记 与之完全相反的函数还有prev_permutation (1) int 类型的next_permutation int main(){ int a[3];a[0]=1;a[1]=2;a[2]=3; do{cout} while (next_p转载 2015-08-28 21:28:26 · 417 阅读 · 0 评论 -
string::npos
The string class provides six search functions, each named as a variant of find. The operations all return a string::size_type value that is the index of where the match occurred, or a special value转载 2015-10-20 20:13:33 · 354 阅读 · 0 评论