STL Iterator的里里外外(一)?1. Iterator是什么? Iterator是指针的概括物(泛型指针),是可以通过一组通用的接口类似于普通指针那样遍历区间中的所有元素的对象。Iterator是完全抽象的概念:任何行为类似于Iterator的东西就是一个Iterator(例如:指针是数....
分类:
其他好文 时间:
2014-07-07 18:22:39
阅读次数:
179
今天在编译PDF时发现使用了一下STL中的z数值极限竟然编译不过,return GetRangeConstraint(value ::max(), true);出现如下错误:warning C4003: “max”宏的实参不足error C2589: “(” : “::”右边...
分类:
其他好文 时间:
2014-07-07 18:03:56
阅读次数:
190
STL源码剖析---根据最新版本的g++4.9.0(支持C++11)的修订(1)空间配置器 源码剖析采用的G++版本为2.91.57版本,是比较老的版本与最新版本4.9.0有某些方面的差别。现在我针对最新版本做一个分析。我下载了最新的gcc-4.9.0的包作为观察对象: 我们#include 时的头...
分类:
编程语言 时间:
2014-07-01 21:21:18
阅读次数:
582
前面已经学习过auto_ptr,这里补充另外一种智能指针,比auto_ptr要更强力更通用的shared_ptr。 shared_ptr 简介及使用选择 几乎所有的程序都需要某种形式的引用计数智能指针,这种指针让我们不再需要为两个对象或更多对象共享的对象的生命周期而编写复杂的逻辑(写起来有点绕口)....
分类:
其他好文 时间:
2014-07-01 13:25:27
阅读次数:
217
1. 栈(stack)这种数据结构在计算机中是相当出名的。栈中的数据是先进后出的(First In Last Out, FILO)。栈只有一个出口,允许新增元素(只能在栈顶上增加)、移出元素(只能移出栈顶元素)、取得栈顶元素等操作。在STL中,栈是以别的容器作为底部结构,再将接口改变,使之符合栈的....
分类:
其他好文 时间:
2014-06-30 13:53:53
阅读次数:
185
①push_heap算法
下面是push_heap算法的实现细节。该函数接收两个迭代器,用来表现一个heap底部容器(vector)的头尾,并且新元素已经插入到底部的最尾端。
template
inline void push_heap(RandomAccessIterator first,RandomAccessIterator last)
{
//注意,此函数被调用时,新...
分类:
其他好文 时间:
2014-06-30 09:25:57
阅读次数:
239
《STL源码剖析》中,指出SGI STL的list底层数据结构式循环双向链表,并且在链表尾端留一个空白节点,让end指向它。由于是双向的,那么list的迭代器必须是Bidirectional Iterator类别的。
下面,分别验证vs2010下和code blocks(gcc)下,list的底层实现是否是循环链表。
#include
#include
using namesp...
分类:
其他好文 时间:
2014-06-30 00:21:54
阅读次数:
202
题目链接:http://poj.org/problem?id=2442
题目大意:给出一个m*n的矩阵,从每一行中取出一个数相加,能得到n^m个不同的结果,要求输出其中前n项。
建立一个以n元数组为底层数组的堆,在这里,利用stl中的make_heap,pop_heap,push_heap等函数解决。
1.将第一组数据输入arr1数组,升序排序。
2.将接下来的数据输入到arr2数组中,并...
分类:
其他好文 时间:
2014-06-29 23:25:31
阅读次数:
259
题目链接:点击打开链接
stl+容斥
#include
#include
#include
#include
#include
#include
using namespace std;
#define N 65540
#define ll __int64
ll n;
ll a[N][4], mul[4]={1,16,256,4096};
ll h[N];
vectorG[N];
...
分类:
其他好文 时间:
2014-06-29 20:46:31
阅读次数:
193
现代 C++ 强调:基于堆栈的范围,而非堆或静态全局范围。自动类型推理,而非显式类型名称。智能指针而不是原始指针。std::string和std::wstring类型(请参见),而非原始char[]数组。标准模板库(STL) 容器(例如vector、list和map),而非原始数组或自定义容器。请参...
分类:
编程语言 时间:
2014-06-29 18:46:28
阅读次数:
255