
C++
HardIOCP
这个作者很懒,什么都没留下…
展开
-
配接器ptr_fun的一点增补
ptr_fun的作用是什么?就是把函数(函数的参数最多有两个,返回值类型任意,包括void)转成函数对象,并使该函数对象可配接。当和bind1st或者bind2nd结合使用的时候,ptr_fun作用的函数的参数类型会有限制:不能是引用类型原创 2012-01-09 12:21:56 · 913 阅读 · 1 评论 -
有符号数的向左位移运算
今天忽然想到的,有符号数的左移是怎么处理的。查了一些资料,原来左移就是简单的把数字的2进制表示的最左边若干位抛弃掉,同时把剩余的位向左移动,空出来的位置用0补上即可。有符号数、无符号数都是这样的。特别的,有符号数左移之后的正负取决于左移之后的符号位,就是说有符号数左移之后的正负是不确定的,和左移的位数有关系。还有,float和double是不能做位移运算的(这不废话嘛!)。原创 2012-01-09 19:43:27 · 5044 阅读 · 1 评论 -
模拟C++11的新关键字decltype
只上代码了,尽在不言中吧:#include #include #include #include using namespace std;template struct decltype_t { typedef T type; }; #define DECLTYPE(expr) decltype_t::type int main(){ std::map m原创 2012-01-20 21:12:41 · 1324 阅读 · 0 评论 -
cin的错误标记和缓冲区清空
先看下面的代码:vector intVtr;intVtr.insert(intVtr.end(), istream_iterator(cin), istream_iterator());上面的代码就是从标准输入中得到int型数字,并把值插入到intVtr中。当遇到非数字字符时,输入结束。问题是,现在我要继续从标准输入读进int数字并插入intVtr结尾(也可以在其他位置,本文假定原创 2011-12-31 11:03:14 · 2574 阅读 · 1 评论 -
如何把string的元素逆序呢?
论坛里见到这个问题:如何把string的元素逆序?我直接想到的是利用反向迭代器reverse_iterator:rbegin()和rend():string str1("1234567890");string str2(str1.rbegin(), str1.rend());这样的话逆序string就保存在str2里了。要是想保存在原string呢,这样:string str原创 2012-01-03 11:32:12 · 12568 阅读 · 0 评论 -
无聊的细节:指针、引用、右值
先看代码:int i;int*& ii = &i;我想定义一个int*的引用ii。但是上面的代码不能编译,因为&i是个右值,不能被引用(只能引用左值嘛),只好加上const:int i;int*& ii = &i;int* const &ii = &i;OK了,const只能放在这里,下面的代码不能编译(为什么?):int i;const int*& ii =原创 2012-01-05 10:49:33 · 663 阅读 · 0 评论 -
类的直接构造和拷贝构造
先看代码:#include using namespace std;class A{public: A(int k): m_k(k) { } A(const A&a): m_k(a.m_k) { cout << "copy ctor" << endl; }private: int m_k;};int main(){ A a1(1);原创 2012-02-16 13:03:27 · 867 阅读 · 0 评论