01 2015 档案
摘要:这个问题原本是 C++ 吧里有人问的, 我当时就立刻动手解决了, 结果后来才发现, STL 里已经有了对应的泛型算法了......看来我对 STL 知道的还是太少, 贴一下我当时完成的方法:set VecToSet (const vector &vec){ set tmp_set (vec.c...
阅读全文
摘要:#include #include #include #include vector GetStr (const wstring &s){ locale china ("chs"); wistringstream line (s); wstring word; vector ...
阅读全文
摘要:1. 当函数的形参类型为 string, 而传入的参数类型为 char[] 时, 需要在线程函数中转型, 如此可以避免空悬指针。如:void f(int, std::string const&);void oops(int some_parm){ char buffer[100]; sp...
阅读全文
摘要:英语不好, 见谅。 1 float myRound (float src, int idx) 2 { 3 //move idx numbers right of the point 4 //to the left 5 for (int i = idx; i--;) { 6 ...
阅读全文
摘要:偶尔看到知乎的一个答案中提到了“停机问题”的概念,觉得挺有趣。 在看了维基百科之后, 以下是我的理解:已知:enum couldStopFlag{ couldStop = true };couldStopFlag CouldStop(function F);couldStopFlag K(funct...
阅读全文
摘要:知乎上看到一个图片, 说的是看别人代码时的感受, 觉得很有趣, 就翻译了一下.如果您有更贴切的翻译, 希望多指教, 多交流.好, 废话不多说, 上图:1. 咋这么多坑?2. 这样的结构逗我呢?3. 这货想干吗?4. 这个注释真是实话;5. 这么低效的设计真是不敢直视;6. 这个新装置又是什么鬼?
阅读全文
摘要:1. forward 不支持初始化列表, 或者说, forward 无法推导多个参数的集合.2. 一些编译器对于 static const val 的态度是直接替换, 如 static const val = 7; 那么, 对于函数 Func(val) 就等于 Func(7). 可是如果未定义的 s...
阅读全文
摘要:1. 当没有移动操作可使用时. 如果类的设计者把一个类的移动拷贝和移动运算符重载都声明为 delete, 那么你使用的所谓 "移动 构造函数函数/运算符" 实际上还是拷贝运算符.2. 当移动没有拷贝块时有些情况下, 移动并不比拷贝快, 比如 面对 small string optimization ...
阅读全文
摘要:约定: A -> B : T = type 含义是把参数 A 传入以 B 为模板类型参数, typename 为 T 的模板中时, T 的类型会被推断为 type. 其中, any 指任何类型, |T| 为实参类型, T = error 意味着错误.|T| -> T&& : T = T&T&& ->...
阅读全文
摘要:之前的一篇博客中已经提到过了, 使用模板的目的是提高效率, 可是会因为用户输入的不可预知性导致计划中的函数没有匹配到, 而是被模板函数接收, 所以我们的策略就是, 使用 SFINAE 这个 trick:templatevoid LogAndAdd(T &&name){ LogAndAddImp...
阅读全文
摘要:考察以下代码:std::multiset names; //global data structurevoid LogAndAdd(const std::string &name){ auto now = //got...
阅读全文