
STL
tianmo2010
这个作者很懒,什么都没留下…
展开
-
STL中map按值(value)排序
map默认是按照键(key)排序的。很多时候我们需要按值(value)排序,靠map里的算法当然是不行的,那么可以把它转存到vector中,在对vector按照一定的规则排序即可。//示例代码:输入单词,统计单词出现次数并按照单词出现次数从多到少排序 #include #include #include #include #include #include原创 2012-05-03 21:14:09 · 1770 阅读 · 0 评论 -
C++ 之高效使用STL (STL 容器的选择)
方法一: $query_firewall_addr_source = "select * from firewall_addr order by name"; $result_firewall_addr_source = mysql_q转载 2011-08-05 15:39:53 · 749 阅读 · 0 评论 -
deque容器类型
今天学习了一下vector容器,解决了这个问题,现附上代码:#include #include #include using namespace std;void Dedup(FILE* infile,FILE* outfile){ int iTemp; unsigned int nCount = 0; typedef set IntSet; IntSet iAr原创 2011-11-30 16:06:46 · 1730 阅读 · 0 评论 -
STL序列式容器和关联式容器
序列式容器1、vectorvector c;vector c2(c1);vector c(n);//利用元素default构造函数生成一个大小为n的vectorvector c(n,elem);vector c(beg,end);c.size();c.empty();c.max_size();c.capacity();c.reverse();c1 =原创 2013-08-19 18:58:32 · 2247 阅读 · 0 评论 -
stack和queue详解
1. 在使用unique_copy()函数之前,一定要使用sort()函数进行排序,否则得不到正确的结果。因为unique_copy()函数的原来删除相邻的相同元素。2.使用meger()函数合并两个数列的时候,也要在之前用sort()进行排序。li1.sort(); li2.sort(); li1.merge(li2);3.STL容器分两种,序列式容器(vector/原创 2012-03-26 15:35:57 · 1312 阅读 · 0 评论 -
设计包含min函数的栈
一、可重入函数1)什么是可重入性?可重入(reentrant)函数可以由多于一个任务并发使用,而不必担心数据错误。相反, 不可重入(non-reentrant)函数不能由超过一个任务所共享,除非能确保函数的互斥(或者使用信号量,或者在代码的关键部分禁用中断)。可重入函数可转载 2011-10-04 18:52:34 · 952 阅读 · 0 评论 -
用两个栈实现一个队列
view plain//为了和DSP兼容,TSint64和TUint64设置成TSint40和TUint40一样的数 //结果VC中还是认为是32位的,显然不合适 //typedef signed long int TSint64; //typedef unsigned long int TUint64; //ANSI C中规定long long才能表示64位转载 2011-08-15 13:04:08 · 1342 阅读 · 0 评论 -
map/multimap容器类型
map和multimap将key/value pair当做元素,进行管理。它们可根据key的排序准则自动将元素排序。multimap允许重复元素,map不允许。一、map/multimapmap c;map c(op);map c1(c2);map c(beg,end,op);c.size();c.empty();c.max_size();c原创 2013-08-20 17:00:29 · 1935 阅读 · 0 评论 -
vector中struct等自定义结构排序
对于vector结构包含自定义的包括struct等的排序原创 2014-07-21 20:24:28 · 4052 阅读 · 1 评论 -
找出一堆数据中最大或者最小的K个数
RT:找出最大的K个数方法是建立一个有K个数的最小堆。#include #include #include using namespace std;typedef multiset > INTHEAP;void FindGreatestNum(vector& iArray, const unsigned int num, INTHEAP& pRes){原创 2012-03-27 19:05:35 · 2563 阅读 · 1 评论 -
priority_queue 用法详解
priority_queue 调用 STL里面的 make_heap(), pop_heap(), push_heap() 算法实 现,也算是堆的另外一种形式。先写一个用 STL 里面堆算法实现的与真正的STL里面的 priority_queue 用法相似的 priority_queue, 以加深对 priority_queue 的理解#include #include转载 2015-04-18 21:10:30 · 1365 阅读 · 0 评论 -
hashmap详解
标准std中中的map,是使用平衡二叉树实现的,查找和添加的复杂度都为O(log(n)), 标准std中中的hashmap,是使用hashtable实现的,查找和添加的复杂度都为O(1), gnu c++提供了hash_map,是一个hash map的实现,查找和添加复杂 度均为O(1)。 #include #ifdef __GNUC__#include #else#原创 2012-04-19 15:38:06 · 2360 阅读 · 0 评论 -
二分查找—lower_bound 、upper_bound 、binary_search
STL中关于二分查找的函数有三个lower_bound 、upper_bound 、binary_search 。这三个函数都运用于有序区间(当然这也是运用二分查找的前提)。 其中如果寻找的value存在,那么lower_bound返回一个迭代器指向其中第一个这个元素。upper_bound返回一个迭代器指向其中最后一个这个元素的下一个位置(明确点说就是返回在不破坏顺序的情况下原创 2013-08-19 17:04:15 · 1442 阅读 · 0 评论 -
C++ 之高效使用STL(排序算法的选择 )
引言HTTP协议我想任何IT人士都耳熟能详了,大家都能说出个所以然来。但是如果我问你HTTP协议的请求方法有哪些?POST与GET的差异?GET或POST传送数据量的大小有限制吗?HTTP响应的状态有哪些?以及在C#中你如何使用?如果你不能清楚地回答其中的大部分问题,那么这篇文章就是为你准备的!大纲如下:1、HTTP概述1.1、HTTP协议的客户端与服务器的交互 1.2、HTT转载 2011-05-31 12:57:00 · 2204 阅读 · 0 评论 -
C++ 之高效使用STL(查找算法的选择)
在向mysql 插入数据时 很多时候 我们想知道刚刚插入数据的id 这对我们很有用 下面我说出常用的三种方法并一一分析其利与弊一 用以下语句:mysql_query("select max(id) from t1",$link);使用这种方法时 我转载 2011-08-04 19:50:50 · 1600 阅读 · 0 评论 -
删掉重复的数据
一)过滤重复的数据。即把原来重复的数据过滤,只保留一份。例如:int a[]={1,3,4,3,2,5,2};输出:1 3 4 2 5①实现方法一(采用STL):#include #include #include using namespace std;void Dedup(FILE* infile,FILE* outfile){ int iTemp;原创 2011-11-30 16:30:01 · 2174 阅读 · 1 评论 -
unique_copy用法
/* template OutputIterator unique_copy ( InputIterator first, InputIterator last, OutputIterator result );template OutputIterator unique_copy ( InputIterator fir原创 2012-03-25 20:59:35 · 2016 阅读 · 0 评论 -
STL之multiset简介
在我的印象中,set就是一个元素不重复的集合,而事实上也正是这样的。无论从MSDN还是任何其它地方,都会告诉我们set的元素不可以重复。反之,只要元素不重复,就可以顺利的放入到set中。看起来这实在是再清楚不过了,但是仔细想一想的话,就会发现,话说只要不重复的元素就可以被放入到一个set中,但是什么样的元素是不重复的元素呢?或者说,什么样的元素是互不相同的呢?对于内置数据类型,也就是传说中的pri原创 2013-08-20 15:09:19 · 1357 阅读 · 0 评论 -
set,multiset容器类型
set和multiset会根据特定的排序准则,自动将元素排序。两者不同处在于multiset允许元素重复而set不允许。一、set和mutisetset c;set c(op);set c1(c2);set c(beg,end,op);c.size();c.empty();c.max_size();c.count(elem);c.find(elem);c.lower_bo原创 2013-08-20 14:40:53 · 1766 阅读 · 0 评论 -
STL之multimap简介
C++ Multimaps和maps很相似,但是MultiMaps允许重复的元素。(具体用法请参考map容器)函数列表:begin() 返回指向第一个元素的迭代器 clear() 删除所有元素 count() 返回一个元素出现的次数 empty() 如果multimap为空则返回真 end() 返回一个指向multimap末尾的迭代器 equal_range() 返回指原创 2013-08-20 17:53:56 · 1101 阅读 · 0 评论 -
vector容器类型
vector类为内置数组提供了一种替代表示,与string类一样 vector 类是随标准 C++引入的标准库的一部分 ,为了使用vector 我们必须包含相关的头文件 :#include 使用vector有两种不同的形式,即所谓的数组习惯和STL习惯。一、数组习惯用法1. 定义一个已知长度的 vector :vector ivec( 10 ); //类似数组定义int i原创 2011-11-30 15:26:02 · 1519 阅读 · 0 评论 -
pair和make_pair
1、简介 class pair ,中文译为对组,可以个值视为将两一对于个单元。map和multimap,是就用pairs来管理value/key的成对元素。任何函数需要回传两个值,也需要pair。 该函数的相关内容如下所示: |->Type----->struct |->Include--->原创 2013-08-21 10:40:10 · 1313 阅读 · 0 评论 -
list容器类型
关于Get和Post的区别:1.get是从服务器上获取数据,post是向服务器传送数据。 2.get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。 post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。3.对于get原创 2011-11-10 18:43:34 · 673 阅读 · 0 评论 -
把文件中大量的数据去掉重复的再写入文件
CURL是一个超强的命令行工具,其功能非常强大,有Linux/Unix版本的,也有Windows版本的,我平时就经常在Windows下面使用curl做一些测试,非常方便,有时用curl做测试比用浏览器做测试要快得多,方便得多。1.curl命令帮助选项C:\>curl --helpUsage: curl [options...] Options: (H) means HTTP/H原创 2013-06-20 19:51:19 · 1511 阅读 · 0 评论 -
STL copy详解
0 前言: STL,为什么你必须掌握对于程序员来说,数据结构是必修的一门课。从查找到排序,从链表到二叉树,几乎所有的算法和原理都需要理解,理解不了也要死记硬背下来。幸运的是这些理论都已经比较成熟,算法也基本固定下来,不需要你再去花费心思去考虑其算法原理,也不用再去验证其准确性。不过,等你开始应用计算机语言来工作的时候,你会发现,面对不同的需求你需要一次又一次去用代码重复实现这些已经成熟的算原创 2013-08-22 15:08:22 · 1503 阅读 · 0 评论 -
C++ 之高效使用STL(算法 )
STL算法部分主要由头文件,,组成。要使用 STL中的算法函数必须包含头文件,对于数值算法须包含,中则定义了一些模板类,用来声明函数对象。 STL中算法大致分为四类: 1、非可变序列算法:指不直接修改其所操作的容器内容的算法。 2、可变序列算法:指可以修改它们所操作的容器内容的算法。 3、排序算法:包括对序列进行排序和合并的算法、搜索原创 2013-08-22 14:40:28 · 2032 阅读 · 0 评论 -
STL sort详解
详细解说 STL 排序(Sort)详细解说 STL 排序(Sort)作者Winter详细解说 STL 排序(Sort)0 前言: STL,为什么你必须掌握1 STL提供的Sort 算法1.1 所有sort算法介绍1.2 sort 中的比较函数1.3 sort 的稳定性1.4 全排序1.5 局部排序1.6 nth_element 指定元素排序1.7 parti转载 2012-05-03 21:28:33 · 2376 阅读 · 0 评论 -
vector中的resize与reserve
void reserve (size_type n);reserver函数用来给vector预分配存储区大小,即capacity的值 ,但是没有给这段内存进行初始化。reserve 的参数n是推荐预分配内存的大小,实际分配的可能等于或大于这个值,即n大于capacity的值,就会reallocate内存 capacity的值会大于或者等于n 。这样,当调用push_back函数使得size原创 2017-11-16 23:10:51 · 1075 阅读 · 0 评论