码迷,mamicode.com
首页 >  
搜索关键字:stl    ( 6205个结果
条目十三《尽量使用vector和string来代替使用数组》
条目十三《尽量使用vector和string来代替使用数组》 数组在现代编程语言中基本都存在,应用可谓广泛,不可或缺,虽然在一些语言中(go)有切片等数据结构,但是数组还是存在的。 但是在有了stl后,在使用数组时更建议用vector和string来代替,因为在动态分配数组的内存时,需要人为的管理内 ...
分类:编程语言   时间:2019-01-12 15:27:19    阅读次数:166
[C++ STL] vector使用详解
一、vector介绍: vector(向量): 是一种序列式容器,事实上和数组差不多,但它比数组更优越。一般来说数组不能动态拓展,因此在程序运行的时候不是浪费内存,就是造成越界。而vector正好弥补了这个缺陷,它的特征是相当于可分配拓展的数组(动态数组),它的随机访问快,在中间插入和删除慢,但在末 ...
分类:编程语言   时间:2019-01-12 15:17:36    阅读次数:146
STL 迭代器(iterator)详解
背景:指针可以用来遍历 存储空间 连续的数据结构,但是对于存储空间非连续的,就需要寻找一个行为类似指针的类,来对非数组的数据结构进行遍历。因此,我们引入迭代器概念。   一、迭代器(iterator)介绍 迭代器(Iterator)是一种检查容器内元素并遍历元素的数据类型。 迭代器是指针的 ...
分类:其他好文   时间:2019-01-12 01:09:42    阅读次数:233
条目十二《切勿对slt容器的线性安全性又不切实际的依赖》
条目十二《切勿对slt容器的线性安全性又不切实际的依赖》 这一条目,我想用简短而有力的语句来总结。 stl库是为了照顾大多数情况,而不是某一领域,如果在库层次实现线性安全,很大可能是对性能有所损耗的,这样就得不偿失了,还是让开发者自己按需实现。标准没有在库实现线性安全。一般是厂商实现,可能吧,只能是 ...
分类:其他好文   时间:2019-01-12 01:04:31    阅读次数:151
条目十《了解分配子(allocator)的约定和限制》
条目十《了解分配子(allocator)的约定和限制》 在STL标准库中,分配子的存在有点怪异。 一开始的设计意图是提供一个内存模型的抽象,让使用库者库忽略操作系统的near指针和far指针问题。但此目的没有达到。另一个目的是为了有利于开发作为对象形式存在的内存管理器。 从书中的这句话,其实我咋一看 ...
分类:其他好文   时间:2019-01-12 01:04:00    阅读次数:246
条目十一《理解自定义分配子的合理用法》
条目十一《理解自定义分配子的合理用法》 根据大牛们的测试: STL默认的内存管理器(allocator)太慢,或者浪费内存,或者在使用的时候会产生内存碎片。 又或者需求不一样时: 1.allocator是多线程安全的,而你运行环境是单线程,所以想减少线程同步带来的te不必要开销。 2.当想把容器的对 ...
分类:其他好文   时间:2019-01-12 01:03:20    阅读次数:139
关于C++标准模板库(STL)的一些基本使用
vector vector可以理解成变长数组,即长度根据需要而自动改变的数组 头文件:#include <vector> 定义:vector<typename>name; vector内可以通过下标或者迭代器(iterator)访问(只有vector和string才允许使用v.begin()+3这种 ...
分类:编程语言   时间:2019-01-11 20:10:23    阅读次数:230
c++ stl sort 自定义排序函数cmp要遵循 strict weak ordering
满足strict weak ordering的运算符能够表达其他所有的逻辑运算符(logical operator): <(a, b) : (a < b) <=(a, b): !(b < a) ==(a, b): !(a < b) && !(b < a) !=(a, b) : (a < b) || ...
分类:编程语言   时间:2019-01-10 18:49:48    阅读次数:636
【C++STL/红黑树】POJ 3481 DoubleQueue
POJ 3481 Double Queue 描述: 新成立的BIG-Bank在不切雷斯特开了一间新办公室,使用了由IBM罗马尼亚的现代计算机办公环境,运用了现代信息技术.一般来说,银行的每个顾客都有一个识别码K,并且每一个来银行的顾客都会被给予一个优先级P.银行主管的一个大胆想法震惊了公司的软件工程 ...
分类:编程语言   时间:2019-01-09 21:44:04    阅读次数:234
python初始化list列表(1维、2维)
1.初始化递增的list: list1 = list(range(10))#print list1#[0,1,2,...,9] 2.初始化每项为0的一维数组: list2 = [0] * 5#print list2#[0,0,0,0,0] 3.初始化固定值的一维数组: initVal = 1list ...
分类:编程语言   时间:2019-01-08 22:26:04    阅读次数:203
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!