
STL
zb872676223
pc软件开发
展开
-
对vector等STL标准容器进行排序操作
西方有句谚语:不要重复发明轮子!STL几乎封装了所有的数据结构中的算法,从链表到队列,从向量到堆栈,对hash到二叉树,从搜索到排序,从增加到删除......可以说,如果你理解了STL,你会发现你已不用拘泥于算法本身,从而站在巨人的肩膀上去考虑更高级的应用。排序是最广泛的算法之一,本文详细介绍了STL中不同排序算法的用法和区别。1 STL提供的Sort 算法C++之转载 2014-05-06 17:43:39 · 537 阅读 · 0 评论 -
STL中map用法详解
本文转自:http://www.kuqin.com/cpluspluslib/20071231/3265.html这些基础的东西时而看看,可以增加一些灵感。 Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上转载 2014-10-20 16:18:28 · 461 阅读 · 0 评论 -
STL学习之map容器
map Map是一系列有一个键值(key)和映射值(value)组合的存储元素关联容器。 在一个map中,key值是唯一的确定一个元素,而映射值(value)是这个key相关的值的某个排序。键的类型和值的类型是不同的,例如,map的一个典型的实例----电话簿索引是以姓名作为key,以电话号码作为value的。 本质上,map中的转载 2014-10-08 14:59:00 · 636 阅读 · 0 评论 -
Boost智能指针—shared_ptr(转载,收藏)
Boost智能指针——shared_ptrboost::scoped_ptr虽然简单易用,但它不能共享所有权的特性却大大限制了其使用范围,而boost::shared_ptr可以解决这一局限。顾名思义,boost::shared_ptr是可以共享所有权的智能指针,首先让我们通过一个例子看看它的基本用法:#include#include #include class转载 2014-10-08 15:15:38 · 432 阅读 · 0 评论 -
STL学习之stack适配器
LIFO stackstack是一个容器适配器类型,它被设计成LIFO(最后一个进入栈的,第一个出),并且元素的插入和提取操作只能在容器的尾部。stack作为容器适配器, 用一个具体的容器类的封装对象作为其底层容器,提供一个具体的访问容器元素的成员函数集合。元素都是从具体的容器的“尾部”进行推送(push)和拉出(pop)操作,这个“尾部”就是所谓的栈顶(top)。底层容器转载 2014-10-08 15:08:10 · 433 阅读 · 0 评论 -
STL学习之set容器
set容器只是单纯的键的集合。 除了两种例外情况外,set容器支持大部分的map操作。 两种例外包括:set容器不支持下标操作符,而且没有定义mapped_type类型。在set容器中,value_type类型不是pair类型,而是与key_type相同的类型。与map一样,set容器存储的键也必须唯一,而且不能修改。 构造函数:转载 2014-10-08 14:59:38 · 468 阅读 · 0 评论 -
C++ STL轻松导学
作为C++标准不可缺少的一部分,STL应该是渗透在C++程序的角角落落里的。STL不是实验室里的宠儿,也不是程序员桌上的摆设,她的激动人心并非昙花一现。本教程旨在传播和普及STL的基础知识,若能借此机会为STL的推广做些力所能及的事情,到也是件让人愉快的事情。1 初识STL:解答一些疑问1.1 一个最关心的问题:什么是STL"什么是STL?",假如你对STL还知转载 2014-07-25 14:36:48 · 518 阅读 · 0 评论 -
std排序
vectorC/C++ code?12345678910111213141516171819202122232425262728转载 2014-06-11 18:02:54 · 626 阅读 · 0 评论 -
C++著名程序库的比较和学习经验
C++著名程序库的比较和学习经验1、C++各大有名库的介绍——C++标准库 2、C++各大有名库的介绍——准标准库Boost 3、C++各大有名库的介绍——GUI 4、C++各大有名库的介绍——网络通信 5、C++各大有名库的介绍——XML 6、C++各大有名库的介绍——科学计算 7、C++各大有名库的介绍——游戏开发 8、C++各大有名库的介绍——线程转载 2014-06-24 17:56:27 · 585 阅读 · 0 评论 -
《Effective STL》读书笔记
从毕业就开始用STL,到现在也有5年多的使用经验了,两年前也尝试读过sgi STL源码,结果发现闷头读源码不如买本《STL源码解析》效果好。几个月前从网上下载了《Effective STL》的电子书,这是本11年前出版的价值很高的书,还是在业余时间读了两遍,受益良多。下面粗略地记了些阅读笔记,只记录了部分条款。条款1:仔细选择你的容器vector,list,deque之间的选择:v转载 2014-05-13 17:56:19 · 916 阅读 · 0 评论 -
仿函数----百度百科
仿函数(functor)的概念2仿函数(functor)在各编程语言中的应用▪ C▪ C++▪ C#▪ Java1仿函数(functor)的概念编辑仿函数(functor),就是使一个类的使用看上去象一个函数。其实现就是类中实现一个operator(),这个类就有了类似函数的行为,就是一个仿函数类了。在我们写代码时原创 2014-05-12 16:25:34 · 648 阅读 · 0 评论 -
stl排序之sort函数
http://blog.youkuaiyun.com/hzyong_c/article/details/7791415STL容器的排序,支持随机访问的容器vector,deque,string没有sort成员,可调用std::sort排序;list排序调用自带的list::sort。下面是std::sort函数,有两个版本:[cpp] view plaincopyprint?转载 2014-05-12 16:09:07 · 596 阅读 · 0 评论 -
使用std::sort()排序导致程序core问题分析
一、问题std::sort()在排序的时候,如果对排序中的仿函数对相等的值返回true,会导致程序core掉。二、解决办法让比较函数对相等的值返回false三、原因分析std::sort()在排序是分两步进行的,首选进行快速排序,再对快速排序后的进行插入排序。但如果对于容器里面的对象个数较少的时候,快速排序的性能并不理想,所以STL的std::sort()里面增转载 2014-05-07 10:15:27 · 889 阅读 · 0 评论 -
C++算法库学习__std::sort__对 vector进行排序_排序后就可以进行使用std::lower_bound进行二分查找(查找第一个大于等于指定值的迭代器的位置)__std::unique
std::sort 对vector成员进行排序;std::sort(v.begin(),v.end(),compare);std::lower_bound 在排序的vector中进行二分查找,查找第一大于等于;std::lower_bound(v.begin(),v.end(),v.element_type_obj,compare);std::up转载 2014-05-06 16:47:20 · 10881 阅读 · 0 评论 -
C++:在迭代中删除map的成员
首先要清楚一点,迭代器相当于是容器上的指针,容器可以自己管理内存,因此迭代器可能失效。如果你在不知情的情况下使用了失效的迭代器,后果是不可预料的。可能程序立即崩掉,也可能什么事都没有发生。崩掉了算你幸运,因为你至少知道出了问题,不然有你受的。回到正题,我想说什么呢?比如: 程序代码map theMap;// add somethingto theMap...转载 2015-08-31 16:17:52 · 2153 阅读 · 0 评论