
STL
文章平均质量分 79
世纪殇
一个不断保持前进的程序员,目前潜心在数据分析和中等网站架构设计中
展开
-
STL的内存分配器
STL的内存分配器题记:内存管理一直是C/C++程序的红灯区。关于内存管理的话题,大致有两类侧重点,一类是内存的正确使用,例如C++中new和delete应该成对出现,用RAII技巧管理内存资源,auto_ptr等方面,很多C/C++书籍中都使用技巧的介绍。另一类是内存管理的实现,如linux内核的slab分配器,STL中的allocator实现,以及一些特定于某种对象的内存管转载 2014-06-26 15:06:28 · 545 阅读 · 0 评论 -
位图的使用
位图法定义编辑所谓bitmap,就是用每一位来存放某种状态,适用于大规模数据,但数据状态又不是很多的情况。通常是用来判断某个数据存不存在的。例如,要判断一千万个人的状态,每个人只有两种状态:男人,女人,可以用0,1表示。那么就可以开一个int数组,一个int有32个位,就可以表示32个人。操作的时候可以使用位操作。2位图法应用编辑一、给40亿个不重复的unsigned int的整数原创 2015-06-08 09:47:49 · 504 阅读 · 0 评论 -
hash_map<string,int>的堆排序实现
我们知道hash_map是利用多桶单链式的存储结构,现在我们根据int的数据进行hash_map排序,现在我们使用堆排序的方式,重新将hash_map中的key和value进行list和list,然后根据int进行重新排序,同时将list进行同步操作,以期获得根据value的string排序!!!!// hash_map.cpp : Defines the entry point fo原创 2015-06-04 16:04:12 · 889 阅读 · 0 评论 -
STL的map类型
关于map的数据类型,可以与set进行比较,我们说set,map都是关联性容器,也即set,map都是根据关键字进行数据存储、读取的,我们说set是关键字和数据相同的关联性容器,而map则是不同的,也即利用数学上的映射关系建立的键值对进行存储和读取。#include#includeusing namespace std; struct myComp{ int a, b, c; my原创 2015-05-30 09:48:34 · 605 阅读 · 0 评论 -
STL的set关联容器解析
现在说下容器的种类,分为关联容器和顺序容器:关联容器:就是通过键值进行存储和读取的容器,顺序容器:就是根据元素在容器中的位置进行存储和读取的容器,也即顺序容器而set容器的根本原理所在就是红黑树,红黑树是一种另类的二叉树,相较普通的二叉树而言就有更好的统计性能,红黑树的定义是:1、根节点是黑色的2、节点不是红色就是黑色的3、每个红色节点的左右节点必须是黑色节点4、从叶子原创 2015-05-29 11:30:03 · 522 阅读 · 0 评论 -
STL之hash_map
hash_map最大的特色在于可以根据不同的数据类型原创 2014-06-25 11:17:07 · 630 阅读 · 0 评论 -
STL之 hash_set
hash_set是一种使用hash表数据结构的具有高效数据检索的关联容器,原创 2014-06-24 09:19:10 · 921 阅读 · 0 评论 -
STL之list
首先呢,我们得说list是一个泛化的双向链表,原创 2014-06-19 11:08:06 · 602 阅读 · 0 评论 -
STL之deque
现在学习下deque的正确使用原创 2014-06-12 15:36:21 · 669 阅读 · 0 评论 -
STL之vector
现在正在系统的学习C++的STL编程,首先要学习的就是STL原创 2014-06-10 17:06:42 · 741 阅读 · 0 评论 -
STL 适配器
STL适配器,所谓适配器在设计模式中也有相应的讲解,适配器模式,分为两种一种是对象适配器模式,一种是类适配器模式,STL适配器有三种,一种是迭代器适配器,一种是函数适配器,最后一种则是容器适配器:所谓适配器说的简单些,其根本就是类型转换器其较简单的讲解就是原本是向前的操作,转换之后变成了向后的操作。我们采用原本是iterator适配器,我们从容器中从前向后进行遍历,而反向迭代器则是从最后元素开原创 2015-05-26 16:47:29 · 796 阅读 · 0 评论 -
STL的sort函数
sort函数主要是用来进行特定数据类型排序的,但是呢他的使用也是有限制的,并不是想我梦想的那般原创 2014-06-27 13:35:50 · 651 阅读 · 0 评论 -
[C++][STL]容器的capacity、max_size以及内存分配
capacity - 容器的成员函数capacity()取得max_size - 容器的成员函数max_size()取得STL容器的capacity属性,表示STL在发生realloc前能允许的最大元素数,也可以理解为预分配的内存空间。例如一个vector v的capacity为5,当插入第6个元素时,vector会realloc,vector内部数据会复制到另外一个内存区域。这样之前指向转载 2014-06-12 08:09:49 · 819 阅读 · 0 评论 -
STL之for_each, find_if,adjacent_find,count_if的使用
// STL_Algorithm.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#include#includeusing namespace std;struct stuInfo{ int num; char name[30];};struct stuEqual{ const static size_t bucke原创 2014-06-29 08:55:54 · 967 阅读 · 0 评论 -
STL之函数对象
在STL当中如果元素,或者说原创 2014-06-26 09:56:39 · 608 阅读 · 0 评论 -
STL之迭代器
看的越多,好像关于迭代器也就越难写了,呵呵不过,还是做个记录,聊以自慰吧1、首先迭代器是一种广义的指针,一个数组也同样可以作为一种迭代器的具象,迭代器提供对一个容器中的对象的访问方法,并且定义了容器中对象的范围。迭代器就如同一个指针。事实上,C++的指针也是一种迭代器。但是,迭代器不仅仅是指针,因此你不能认为他们一定具有地址值。例如,一个数组索引,也可以认为是一种迭代器。2、迭代器在STL原创 2015-05-25 17:02:43 · 563 阅读 · 0 评论