sites:
v2ex.com
csdn.net
牛博网
Code: The Hidden Language of Computer Hardware and Software (《编码的奥秘》)
Computer System: A Programmer’s Perspective (《深入理解计算机系统》) / Windows via C/C++ (《Windows核心编程》 / 《程序员的自我修养》
Code Complete 2(《代码大全》)/ The Pragmatic Programmer (《程序员修炼之道》,我也把这本书称为《代码小全》)
Programming Pearls (《编程珠玑》) / Algorithms / Algorithm Design / 《编程之美》
The C Programming Language
The C++ Programming Language / Programming: Principles and Practice Using C++ / Accelerated C++
The Structure and Interpretation of Computer Programs (《计算机程序的构造和解释》)
Clean Code / Implementation Patterns
Design Patterns (《设计模式》) / Agile Software Development, Principles, Patterns, and Practices
Refactoring (《重构》)
C++编程思想
Effective C++
深度探索C++对象模型
C++语言的设计和演化
C专家编程
C陷阱与缺陷
C语言接口与实现
Lua程序设计
Linkers and Loaders
COM本质论
Windows核心编程
深入解析Windows操作系统
程序员修炼之道
代码大全
UNIX编程艺术
设计模式
代码优化:有效使用内存
深入理解计算机系统
深入理解LINUX内核
TCP/IP 详解
UNIX编程艺术
Compilers (龙书)
计算机程序设计艺术
# TCP连接状态
# POST和GET
http://blog.csdn.net/whuslei/article/details/6667095
# Callback
引用其实就是 c++ 中的常量指针
```
#include <iostream>
#include <list>
using namespace std;
#define LOG(value,msg) cout<<endl<<"Line"<<__LINE__<<": value is "<<value<<" ;msg is "<<msg<<endl;
void Invoke(char* s, int value)
{
for(int i=0;i<value;i++)
cout<<s<<endl;
LOG(12,"Hello");
}
void CallBackFun(void (*callback)(char*,int),char* s,int nTimes)
{
callback(s,nTimes);
}
void show(list<int>& l)
{
cout<<endl<<"List is:"<<endl;
for(list<int>::iterator it=l.begin();it!=l.end();it++)
{
cout<<*it<<endl;
}
}
void swap(int &a,int &b)
{
a=a+b;
b=a-b;
a=a-b;
}
int main()
{
CallBackFun(Invoke,"Hello World",3);
list<int> StuNum;
for(int i=0;i<50;i++)
StuNum.push_back(i);
show(StuNum);
i=1;
int j=2;
swap(i,j);
LOG(i,j);
int &k=i;
k++;
LOG(i,k);
cout<<&i<<endl<<&k<<endl;
return 0;
}
```
list 双向链表。 不支持随机访问,但可以从begin和end来插入和pop出数据。
slist 单向链表。
向量(vector) 连续存储的元素<vector>
列表(list) 由节点组成的双向链表,每个结点包含着一个元素<list>
双队列(deque) 连续存储的指向不同元素的指针所组成的数组<deque>
集合(set) 由节点组成的红黑树,每个节点都包含着一个元素,节点之间以某种作用于元素对的谓词排列,没有两个不同的元素能够拥有相同的次序 <set> 元素可以是结构体
多重集合(multiset) 允许存在两个次序相等的元素的集合 <set>
栈(stack) 后进先出的值的排列 <stack>
stack 出栈(pop删除栈顶元素)
入栈(push)
queue 先进先出
队列(queue) 先进先出的值的排列 <queue>
优先队列(priority_queue) 元素的次序是由作用于所存储的值对上的某种谓词决定的的一种队列 <queue>
映射(map) 由{键,值}对组成的集合,以某种作用于键对上的谓词排列 <map>
多重映射(multimap) 允许键对有相等的次序的映射 <map>