存档

文章标签 ‘STL’

STL笔记之空间配置器

2014年6月10日 2 条评论

最近看了看侯捷的《STL源码剖析》,打算看完之后写写笔记,毕竟很多东西看起来看懂了,却并不一定能够将其描述清楚,说到底还是没有彻底弄明白,最近博客也基本不怎么写了,所以还是决定写一写,这也算是写博客的乐趣之一吧。这一系列笔记,更主要是写给自己看的:)
1. 初探allocator
其实像我这样的一般人几乎接触不到allocator这种东西,因为这个模板参数是有默认值的,普通用户完全不需要和他打交道。但观察一下allocator这个东西的设计思路,还是可以学到不少东西。先从一个简单的allocat[......]

继续阅读

STL auto_ptr智能指针简单分析

2011年10月8日 没有评论

闲着没事,整理一下对auto_ptr的理解。去年年底的时候准备认认真真的看看STL源代码,可是时间不是很充足,自己也不是很坚定,于是就乱七八糟的看了看。现在虽然琐事繁多,但时间还是有的,所以再整理下。
auto_ptr是STL里面的智能指针(Smart Pointer),一个很好的优点就是指针所有权自动转移和指针自动删除技术。对于异常和经常忘记delete的情况来说很实用。下面就是从SGI官方网站下载的STL auto_ptr实现源码(我在代码里面加上了我的注释,不正确的地方欢迎指正):

1
[......]

继续阅读

分类: STL编程 标签: , ,

复数集合(优先队列)

2011年8月31日 没有评论

题目描述
一个复数(x+iy)集合,两种操作作用在该集合上:
1. Pop 表示读出集合中复数模值最大的那个复数,如集合为空输出empty,不为空就输出最大的那个复数并且从集合中删除那个复数,再输出集合的大小SIZE;
2. Insert a+ib 指令(a,b表示实部和虚部),将a+ib加入到集合中 ,输出集合的大小SIZE;
最开始要读入一个int n,表示接下来的n行每一行都是一条命令。
输入
输入有多组数据。
每组输入一个n(1小于等于n小于等于1000),然后再输入n条指[......]

继续阅读

分类: 其他题解 标签: , ,

HDOJ MAP HDU 1029 1075 1263

2011年4月5日 没有评论

几道用MAP通过的水体,仅供参考。当然用map可以水过的题目还有很多,以前也做过不少(文章在保留在老博客的数据库中(*^__^*) 嘻嘻……),做太多了也没意义,仅当复习。
HDU1029 Ignatius and the Princess IV http://acm.hdu.edu.cn/showproblem.php?pid=1029 找出现次数最多的数字,此题在内存方面做了限制,所以用数组是不行的。
HDU1075 What Are You Talking About http://acm[......]

继续阅读

分类: HDOJ解题报告 标签: , , ,

HDU 1880 魔咒词典

2011年4月3日 没有评论

做这些题,主要是复习STL。我用map写的,结果超内存了,非常郁闷。思路是这样的:用两个map,一个存咒语-意思,另一个存意思-咒语。于是我只用一个map,存咒语-意思,只有一个的话,value就要自己找了,没规律,只能暴力搜索,超时。
传送:http://acm.hdu.edu.cn/showproblem.php?pid=1880
后来,我还是用两个map,提交语言改为G++,结果就AC了。另外,自己试着用两个vector,然后快排,然后二分搜索,也行;不过还是必须G++,否则MLE。两个程[......]

继续阅读

分类: HDOJ解题报告 标签: , , , , ,

error:no type named iterator_category in struct

2010年11月29日 没有评论

又一个非常非常诡异的一个编译错误。当我第一次遇到这个错误的时候头都晕了。还是先把代码贴上来吧:
#include <iostream>
#include <stdio.h>
#include <math.h>
using namespace std;

typedef struct TagPoint
{
int x, y;
}Point;

inline double distance(const Point& a, const [......]

继续阅读

分类: C++编程 标签: , ,

bitset和string数组

2010年10月26日 没有评论

[CSDN答题总结:水题]问:
string str = "abc";
str[0]就是a
bitset<16> bit;
bit[1]就是0
现在想定义个string和bitset的数组
怎么实现定义一个string[3]就相当于定义了3个string对象 string1 string2 string3
怎么实现定义一个bitset[3]就相当于定义了3个bitset对象 bitset1 bit2 bit3
我的回答:
#include <io[......]

继续阅读

分类: STL编程 标签: , , , ,

type/value mismatch at argument 1

2010年10月24日 2 条评论

[CSDN答题总结]最近又开始出没于CSDN,看到网友问到STL的提问,而正好自己也在看STL,所以就回答有关STL的问题:
问:关于C++ STL运用的问题。求高手解答下
是关于一个STL运用的问题,有一个模板类,为
template <class T>
class Word
{
private:
vector <T> vec;
//…..
};
class Code
{
private:
vector <Word> code[......]

继续阅读

分类: STL编程 标签: , , ,

cannot appear in a constant-expression

2010年10月22日 6 条评论

又是一个错误提示。今天在用GCC编译代码时出现了这个错误,全部提示如下:
$ g++ -o a.out readstr3.cpp -Wall
readstr3.cpp: In function 'int main()':
readstr3.cpp:54:29: error: 'start' cannot appear in a constant-expression
readstr3.cpp:54:36: error: 'next' cann[......]

继续阅读

分类: STL编程 标签: , , ,

前置后置自增自减操作符重载

2010年10月21日 2 条评论

//前置/后置/自增/自减操作符重载
//Coded By 代码疯子
//http://www.programlife.net/
#include <iostream>
#include <algorithm>
#include <iterator>
#include <vector>
using namespace std;

class Int
{
friend ostream& operator<<[......]

继续阅读

分类: C++编程 标签: , , ,