现在位置: 首页 > stl
1、命名空间std C++标准中引入命名空间的概念,是为了解决不同模块或者函数库中相同标识符冲突的问题。有了命名空间的概念,标识符就被限制在特定的范围呢,不会引起命名冲突。最典型的例子就是std命名控件,C++标准库中所有标识符都包含在该命名空间中。 如果确信在程序中引用某个或者某些程序库不会引起命名冲突,那么可以通过using操作符来简化对程序库中标识符(通常时函数)的使用,例如: using namespace std; ...
阅读全文
2012-12-04 22:00 工业·编程 ⁄ 共 2004字 暂无评论
标准库Vector类型使用需要的头文件: #include <vector> Vector:Vector 是一个类模板。不是一种数据类型。 Vector<int>是一种数据类型。 一、 定义和初始化 Vector<T> v1; //默认构造函数v1为空 Vector<T> v2(v1);//v2是v1的一个副本 Vector<T> v3(n,i);//v3包含n个值为i的元素 Vector<T> v4(n); //v4含有n个值为0的元素 二、 值初始化 1> 如果没有指定元素初始...
阅读全文
2012-09-20 05:26 工业·编程 ⁄ 共 1194字 暂无评论
    需求推动了技术的发展,从MFC到ATL,从ATL再到WTL的发展历程我想就是一个最好的见证。     早期的VC++开发者们发现了MFC(Microsoft Foundation Classes) 这样一个好东东。他们发现,MFC提供了一个强大的类库,很好的满足了面向对象编程的需要。随着泛型编程技术的发展和时间的推移,慢慢地,他们慢慢觉得MFC的类库过于庞大和宽泛,而且它提供的模板库只覆盖了很有限的领域。于是,ATL应运而生...
阅读全文
2012-09-19 05:16 工业·编程 ⁄ 共 3150字 暂无评论
STL 即 Standard Template Library     STL(标准模板库)是惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、 Meng Lee和David R Musser在惠普实验室工作时所开发出来的。现在虽说它主要出现在C+ +中,但在被引入C++之前该技术就已经存在了很长的一段时间。     STL的代码从广义上讲分为三类:algorithm(算法)、container(容器)和iterator(迭 代器),几乎所有的代码都采用了...
阅读全文
2012-09-12 19:31 工业·编程 ⁄ 共 1222字 暂无评论
1,删除一个元素 比如:vector vecID; 中保存了m个ID,这时要删除第n个ID。 遍历是一个方法;即vector::itertor it = vecID.begin(); 然后++it n次。 更好的方法是:vector::itertor it = vecID.begin() + n; vector的迭代器直接支持这种偏移。 然后用vecID.erase(it)方法 删除该元素。 2.去除一个容器中有特定值的所有对象 1)如果容器是vector、string或deque,使用erase-remove惯用法,例如 c.erase(remove(c.begin(), c.end...
阅读全文
2012-09-10 11:45 工业·编程 ⁄ 共 2091字 暂无评论
这里列几个常见问题,应该对你理解和使用hash_map比较有帮助。 1.1 hash_map和map的区别在哪里? 构造函数:hash_map需要hash函数、等于函数;map只需要比较函数(小于函数).  存储结构:hash_map采用hash表存储,map一般采用红黑树(RB Tree)实现。因此其内存数据结构是不一样的。 1.2 什么时候需要用hash_map,什么时候需要用map? 总体来说,hash_map 查找速度会比map快,而且查找速度基本和数据量大小无关,属于常数级;而...
阅读全文
2012-09-10 11:43 工业·编程 ⁄ 共 2619字 暂无评论
一.问题的引出: 容器可以存放对象,可以存放指针,这里要谈的是两者的使用问题。就是什么时候存放对象更好,什么时候存放指针更好? 二.问题的分析过程: 1. 首先说下stl容器的工作方式 对于内建类型(int float char等),容器的工作方式是纯粹的位拷贝,这里没有什么需要多说的。 对于自定义的对象,容器容纳了对象(比如通过insert或push_back等),但容器中存放的对象不是你给它们的那个对象,因为两个对象在内存中的位置...
阅读全文
2012-09-06 11:37 工业·编程 ⁄ 共 851字 评论 1 条
观点一     c++是语言,但你知道,语言本身功能是很有限的,需要一些类库把常用的操作封装起来,以后可以直接调用,就节省了普通开发人员的大量精力.     stl和MFC都是一个扩充C++语言功能的类库.     stl是底层类库,提供的是一般编程都会用到的功能,主要是一套容器,和一套相关的算法.常用的数据结构,比如list, queue, stack, map等等,都在stl里面给你实现好了,直接用就是了.  &#...
阅读全文
2012-08-13 06:14 工业·编程 ⁄ 共 751字 暂无评论
一 前言 关联容器(associative container) map对象的元素是键值对,每个元素包含两部分键和键关联的值。 二 map对象的定义 使用关联容器map需要添加头文件 #include <map> std::map<int, CString> m_mapFruit; 该语句定义了一个名为m_mapFruit的map对象 三 map对象元素的插入 方法一 m_mapFruit.insert(std::map<int, CString>::value_type (0, L"苹果")); 方法二 m_mapFruit.insert(std::pair<...
阅读全文
2012-08-06 22:13 工业·编程 ⁄ 共 2053字 暂无评论
    在STL中基本容器有: string、vector、list、deque、set、map set 和map。map set 和map都是无序的保存元素,只能通过它提供的接口对里面的元素进行访问。set集合, 用来判断某一个元素是不是在一个组里面,使用的比较少。map映射,相当于字典,把一个值映射成另一个值,如果想创建字典的话使用它好了。string、vector、list、deque、set 是有序容器。 1.string     string 是basic_string<char&...
阅读全文