代码改变世界

随笔档案-2016年01月

C++ STL之priority_queue

2016-01-26 20:05 by itwolf, 406 阅读, 收藏, 编辑
摘要: STL中的priority_queue(优先队列)是一种会按照自定义的一种方式(数据的优先级)来对队列中的数据进行动态的排序的容器,不同优先级的情况下,top()上永远是最高优先级的数据,其底层采用的是堆结构(默认大顶堆)。注意相同优先级下并没有先进先出,后面的例子中可以看到 头文件#inclu... 阅读全文

谈谈map中的count方法

2016-01-20 22:09 by itwolf, 24762 阅读, 收藏, 编辑
摘要: map和set两种容器的底层结构都是红黑树,所以容器中不会出现相同的元素,因此count()的结果只能为0和1,可以以此来判断键值元素是否存在(当然也可以使用find()方法判断键值是否存在)。拿map举例,find()方法返回值是一个迭代器,成功返回迭代器指向要查找的元素,失败返回的迭代器指向en... 阅读全文

注意map<> 的[]

2016-01-18 20:10 by itwolf, 297 阅读, 收藏, 编辑
摘要: 其实在之前一篇关于map的基本操作中已经提到过注意[]操作,这里再强调一下。先看下面的程序:#include#includeusing namespace std;int main(){ mapnums; nums[6]++; nums[3]+=5; if(0==nums[4... 阅读全文

文件重定向函数freopen

2016-01-18 19:43 by itwolf, 780 阅读, 收藏, 编辑
摘要: 头文件:stdio.hFILE *freopen( const char *filename, const char *mode, FILE *stream );参数说明:filename:需要重定向到的文件名或文件路径。mode:代表文件访问权限的字符串。例如,"r"表示“只读访问”、"w"表示“... 阅读全文

多维数组的理解

2016-01-14 13:09 by itwolf, 4976 阅读, 收藏, 编辑
摘要: 要清楚的理解多维数组,需要先理解指针的算术运算和数组名的含义。1、指针的算术运算 指针的算术运算与普通的类型的算术运算是不同的,编译器会在指针的算术运算的过程中自动乘以sizeof(type),如int p=1;p=p+2;则p=3;而int *p; (假如p指向的初始地址位2000),那么p=p... 阅读全文

C++ STL 中erase()的使用需要小心

2016-01-13 21:19 by itwolf, 1703 阅读, 收藏, 编辑
摘要: C++ STL极大的方便了用户编写程序,但是同时一不小心也会犯一些错误,如erase()造成迭代器失效经常会引起错误。错误示例: std::list List; std::list::iterator it; for( it = List.begin(); it != ... 阅读全文
点击右上角即可分享
微信分享提示