我注意到内部实现的 std::find 中的一些东西让我感到困惑;他们为什么这么做?
\nstd::find(begin,end,...)假设这一行,那么在文件的内部实现中stl_algobase.h,Line:2064是:
\xc2\xa0 \xc2\xa0 \xc2\xa0 typename iterator_traits<_RandomAccessIterator>::difference_type\n\xc2\xa0 \xc2\xa0 __trip_count = (__last - __first) >> 2;\nRun Code Online (Sandbox Code Playgroud)\n这里发生了什么?为什么他们一起做减法然后使用移位运算符?我不明白他们为什么这样做?(抱歉,如果这是初学者的问题。)
\n破坏的开销是多少std::future?\n当我阅读pdf时,它注意到:
// Example 1\n// (a)\n{\n async( []{ f(); } ); \n async( []{ g(); } ); \n}\n// (b)\n{\n auto f1 = async( []{ f(); } );\n auto f2 = async( []{ g(); } );\n}\nRun Code Online (Sandbox Code Playgroud)\n\n\n用户常常惊讶地发现 (a) 和 (b) 没有相同的行为,因为如果我们最终决定我们\xe2\,通常我们会忽略(和/或不看\xe2\x80\x99t)返回值x80\x99对值不感兴趣,这样做不会改变我们程序的含义。
\n
但我检查了quickbench中的差异,与我的想法相反。我是否遗漏了讨论的任何要点?
\n\n