stl
jackytse_
不以物喜 . 不以己悲
展开
-
STL易错知识点
1. string.empty() 不是用来清空字符串,而是判断string是否为空,清空使用string.clear();2. string.find等查找的结果要和string::npos比较,而不是和-1比较。(各个平台可能不同) 3. 将string转为char * ,用char * t = (char *)s.c_str() ,而不是 char *t =s.begin()原创 2012-02-28 20:22:50 · 1348 阅读 · 0 评论 -
STL容器的适用情况
一.各种容器的特性vector典型的序列容器,C++标准严格要求次容器的实现内存必须是连续的,唯一可以和标准C兼容的stl容器,任意元素的读取、修改具有常数时间复杂度,在序列尾部进行插入、删除是常数时间复杂度,但在序列的头部插入、删除的时间复杂度是O(n),可以在任何位置插入新元素,有随机访问功能,插入删除操作需要考虑。deque序列转载 2011-11-23 23:45:13 · 5323 阅读 · 1 评论 -
STL MAP, STL SET之数据结构基础
作者: winter摘要:本文列出几个基本的STL map和STL set的问题,通过解答这些问题讲解了STL关联容器内部的数据结构,最后提出了关于UNIX/LINUX自带平衡二叉树库函数和map, set选择问题,并分析了map, set的优势之处。对于希望深入学习STL和希望了解STL map等关联容器底层数据结构的朋友来说,有一定的参考价值。STL map和set的使用虽不复杂,转载 2012-03-01 20:34:49 · 734 阅读 · 0 评论 -
fstream,ifstream,ofstream 详解与用法
fstream,istream,ofstream 三个类之间的继承关系fstream :(fstream继承自istream和ofstream)1.typedef basic_fstream > fstream;// 可以看出fstream就是basic_fstream2.template class basic_fstream: publicbasic_iostream3原创 2012-02-02 09:50:28 · 18444 阅读 · 0 评论 -
stringstream的用法
【本文来自】http://www.builder.com.cn/2003/0304/83250.shtmlhttp://www.cppblog.com/alantop/archive/2007/07/10/27823.html使用stringstream对象简化类型转换C++标准库中的提供了比ANSI C的更高级的一些功能,即单纯性、类型安全和可扩展性。在本文中,我将展示怎样使用这些库转载 2012-03-31 16:02:25 · 701 阅读 · 0 评论 -
map以自定义类型当Key
关于map的定义:template , class Allocator = allocator > > class map;第一个template参数被当做元素的key,第二个template参数被当作元素的value。Map的元素型别Key和T,必须满足以下两个条件:1.key/value必须具备assignable(可赋值的)和copyable(可复制的)原创 2013-02-26 00:28:22 · 12468 阅读 · 0 评论 -
STL算法之—————remove_if, remove, remove_copy_if
最近有用到STL 的泛型算法remove_if,反复看了MSDN好几遍,硬是没理解这个函数的真正含义,好吧,其实我的英语老师是教体育的 - -! 后来看了STL源码,算是发现其中的奥秘了,这里写个笔记算是给自己加深一点印象吧,下面我任然使用MSDN的范例做说明。int greater6 ( int value ) { return value >6;}int _tmain原创 2013-03-30 06:50:11 · 4355 阅读 · 0 评论 -
vector,deque,list,map,数组比较与分析
vector和数组区别:vector是个容器,array不是vector可以知道自己的大小,array不知道vector可以变大变小,这里变小指的是元素数目,array不能变大变小数组在内存中分配的连续空间,多次分配释放后会有内存碎片,而vectors是动态增长的,当前的容量(capacity)不足就申请一块当前容量2倍的新内存空间,然后将所有的老元素全部拷贝到新内原创 2013-02-26 01:08:06 · 3685 阅读 · 0 评论 -
STL序列容器 vector, list, deque的比较
C++的STL模板库中提供了3种容器类:vector,list,deque对于这三种容器,在觉得好用的同时,经常会让我们困惑应该选择哪一种来实现我们的逻辑。在少量数据操作的程序中随便哪一种用起来感觉差别并不是很大,但是当数据达到一定数量后,会明显感觉性能上有很大差异。本文就试图从介绍,以及性能比较两个方面来讨论这个问题。vector - 会自动增长的数组转载 2013-07-15 11:35:03 · 857 阅读 · 0 评论