STL中的map容器的一点总结
一、关于map的介绍
map是STL的一个容器,和set一样,map也是一种关联式容器。它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,有助于我们处理一对一数据。这里说下map内部数据的组织,map内部是自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动...
分类:
其他好文 时间:
2014-08-07 19:01:06
阅读次数:
249
STL中的list容器的一点总结
1.关于list容器
list是一种序列式容器。list容器完成的功能实际上和数据结构中的双向链表是极其相似的,list中的数据元素是通过链表指针串连成逻辑意义上的线性表,也就是list也具有链表的主要优点,即:在链表的任一位置进行元素的插入、删除操作都是快速的。list的实现大概是这样的:list的每个节点有三个域:前驱元素指针域、数据域和后继元素指...
分类:
其他好文 时间:
2014-08-07 19:00:30
阅读次数:
250
STL中的vector容器的一点总结
1.vector的简单介绍
vector作为STL提供的标准容器之一,是经常要使用的,有很重要的地位,并且使用起来也是灰常方便。vector又被称为向量,vector可以形象的描述为长度可以动态改变的数组,功能和数组较为相似。实际上更专业的描述为:vector是一个多功能的,能够操作多种数据结构和算法的模板类和函数库,vector之所以被认...
分类:
其他好文 时间:
2014-08-07 19:00:00
阅读次数:
188
一、非变异算法
是一组不破坏操作数据的模板函数,用来对序列数据进行逐个处理、元素查找、子序列搜索、统计和匹配。非变异算法具有极为广泛的适用性,基本上可应用与各种容器。
1查找容器元素find
它用于查找等于某值的元素。它在迭代器区间[first,last)(闭开区间)上查找等于value值的元素,如果迭代器i所指的元素满足*i=value,则返回迭代器i;未找到满足条件的元素,返...
分类:
其他好文 时间:
2014-08-07 18:59:50
阅读次数:
306
使用set或multiset之前,必须加入头文件
Set、multiset都是集合类,差别在与set中不允许有重复元素,multiset中允许有重复元素。
sets和multiset内部以平衡二叉树实现
1. 常用函数
1) 构造函数和析构函数
set c:创建空集合,不包含任何元素
set c(op):...
分类:
其他好文 时间:
2014-08-07 18:59:30
阅读次数:
331
1. 所有STL sort算法函数的名字列表:
函数名 功能描述
sort 对给定区间所有元素进行排序
stable_sort 对给定区间所有元素进行稳定排序
partial_sort 对给定区间所有元素部分排序
partial_sort_copy 对给定区间复制并排序
nth_element ...
分类:
其他好文 时间:
2014-08-07 18:59:20
阅读次数:
231
一.序列和关联非共有函数
所有标准库共有函数 (构造,相关属性,迭代器,插入与删除,比较,swap)
其中operator>,operator>=,operator均不适用于priority_queue
顺序容器和关联容器共有函数
(1) 序列容器都提供5种相同的构造方法;关联容器都提供3种相同的构造方法
(2) 还有insert插入函数(序列容器有3个相同版本的插入。关联容...
分类:
其他好文 时间:
2014-08-07 13:15:30
阅读次数:
189
原文:http://blog.csdn.net/tianshuai1111/article/details/7674327一,巡防算法 for_each(容器起始地址,容器结束地址,要执行的方法)#include #include #include using namespace std;te...
分类:
其他好文 时间:
2014-08-07 12:23:30
阅读次数:
195
当你拷贝一个auto_ptr时,它所指向的对象的所有权被移交到拷入的auto_ptr上,而它自身被置为NULL。我的理解是:拷贝一个auto_ptr意味着改变它的值。例如:
auto_ptr pint1(new int);//pint1指向一个int
auto_ptr pint2(pint1);//pint2指向pint1的int;pint1被置为NULL
pint1...
分类:
其他好文 时间:
2014-08-07 00:48:57
阅读次数:
208
一、要删除容器中有特定值的所有对象
1、如果容器是vector、string或deque,则使用erase-remove习惯用法。例如:
vector c;
c.erase(remove(c.begin(),c.end(),1963),c.end());//删除值是1963的元素
下面讲一下算法remove:
template
ForwardIterat...
分类:
其他好文 时间:
2014-08-07 00:48:37
阅读次数:
371