现在位置: 首页 > stl
2015-01-28 23:11 工业·编程 ⁄ 共 1008字 暂无评论
说几个STL的缺点吧,虽然都是在比较极端的情况下出现,但是对于一些大项目还是会遇到的 1. 代码膨胀问题 每一个实例化过的模板类,都会膨胀出一份独立的代码,比如 std::vector<std::string>, std::vector<int>,编译后会产生两份代码,在VC2008下,每份代码大约是3-4kb,这是因为vector比较简单代码少,如果是map则会产生30-50kb的代码,因为map里有个复杂的红黑树。对于数据处理类的代码里一般会定义很多种不同的...
阅读全文
STL是最新的C++标准函数库中的一个子集,这个庞大的子集占据了整个库的大约80%的分量。而作为在实现STL过程中扮演关键角色的模板则充斥了几乎整个C++标准函数库。在这里,我们有必要看一看C++标准函数库里包含了哪些内容,其中又有哪些是属于标准模板库(即STL)的。 C++标准函数库为C++程序员们提供了一个可扩展的基础性框架。我们从中可以获得极大的便利,同时也可以通过继承现有类,自己编制符合接口规范的容器、算法、迭代...
阅读全文
2014-09-10 06:39 工业·编程 ⁄ 共 2335字 暂无评论
0、前言 相信有很有种情况下面要在vector下过滤掉重复的数据就比如在数组中需要过滤重复数据一样重要一般常用的方法,好像还是在学校中教的,进行匹配一遍,然后再进行插入既然有了STL容器,那么我们可以完全抛弃上面提到的一般方法,把效率提高至少1倍 1、思路 map也是我们常用的一种容器,他主要的保存方式是,也就是通过key来进行索引,而且这个key是不重复的,那么在我们过滤的前提下,map就是成败的关键了,看看如何把它用...
阅读全文
2014-06-07 11:00 工业·编程 ⁄ 共 123字 暂无评论
按以下顺序看---- 相关阅读 ----学习C++从入门到精通的经典书籍(修正版) 1、C++标准库自修手册 2、Efficient STL 3、泛型编程与STL 4、STL源码剖析     其实,多找几本一起看才是王道。     看完了神功练就! 专题:程序员书籍推荐
阅读全文
2014-05-13 08:56 工业·编程 ⁄ 共 1638字 暂无评论
1.去官网http://www.stlport.org/下载最新的STLport,我下载了STLport-5.2.1.tar.bz2,它是纯净的源码,需要用户自己编译。 2.VS2010编译步骤:(解压文件STLport-5.2.1.tar.bz2到路径D:\tmpcode\STLport-5.2.1为例) 文本打开D:\tmpcode\STLport-5.2.1\stlport\stl\_cstdlib.h文件,找到158行: inline _STLP_LONG_LONG abs(_STLP_LONG_LONG __x) { return __x < 0 ? -__x : __x; } 修改成: #if !defined(_STLP_MSVC) || (_STL...
阅读全文
vector和数组区别: vector是个容器,array不是 vector可以知道自己的大小,array不知道 vector可以变大变小,这里变小指的是元素数目,array不能变大变小 数组在内存中分配的连续空间,多次分配释放后会有内存碎片, 而vectors是动态增长的,当前的容量(capacity)不足就申请一块当前容量2倍的新内存空间,然后将所有的老元素全部拷贝到新内存中,添加大量元素的时候的花费的惊人的大. 还有vector的迭代器能防止出现类似数组愈界...
阅读全文
2013-07-01 21:20 工业·编程 ⁄ 共 2915字 暂无评论
从STL的std::queue说起 STL的std::queue类是个容器适配器,即由其它容器包装而成的特殊数据结构。 提到queue,就少不了提及它的两个最重要的操作:往队列尾部填加数据的push和从队列头部弹出数据的pop。本文不打算讨论push,只想考查一下pop。std::queue的pop函数相当简单: void pop(); 它的唯一作用就是将当前的队首元素从队列中删除。 同时,std::queue又提供两个重载的front函数,用以获得当前的队首元素: value_type&...
阅读全文
    C语言被发明出来时并没有什么库函数,随着C语言的流行,越来越多的厂商或者机构组织开始提供C的编译器,并且同时把经常用到的函数封装成“库”的形式发布;不同的组织发布的库函数的接口和数量各不相同。后来,标准化组织ANSI制定了C语言的标准,同时也制定了一定数量的库(或库函数),就就成为标准库函数。(后来这个ANSI C标准上升为ISO标准,但是内容并没有变化!谁让美国是老大来着,而且C的源产地...
阅读全文
2013-05-04 20:25 工业·编程 ⁄ 共 946字 评论 1 条
首先,还是得说一下C标准库的发展史喽。 C89中有15个标准头文件:     <assert.h> 、<ctype.h> 、 <errno.h>、 <float.h>、 <limits.h>、 <locale.h>、     <math.h> 、 <setjmp.h> 、<signal.h> 、<stdarg.h>、<stddef.h> 、     <stdio.h>、 <stdlib.h>、 <string.h>  、<time.h...
阅读全文
2013-05-04 20:12 工业·编程 ⁄ 共 772字 暂无评论
C++标准库很大,在现在的情况下,C++标准库确实越来越好,因为大的库会包含大量的功能.标准库中的功能越多,开发自己的应用程序时能借助的功能就越多,C++库并非提供一切(很明显的是没有提供开发和图形用户接口的支持),但确实提供了很多.标准C++库中主要有以下主要组件: 标准C库. I/0流技术. String. 容器. 算法. 对国际化的支持. 对数字处理的支持. 诊断支持.   标准库中容器和算法这部分一般称为标准模板库.STL中实际上还有...
阅读全文