C++11 右值和带有 return 语句的移动语义
我试图理解 C++11 的右值引用和移动语义。 这些示例之间有什么区别,哪些示例不进行矢量复制? 第一个例子: std::vector return_vector(void) { std:…
如何在 C++ 中使用数组?
C++ 从 C 继承了数组,它们几乎无处不在。 C++ 提供了更易于使用且不易出错的抽象(自 C++98 和 std::vector /cpp/container/array" rel="nofollow no…
“使用命名空间 std”有什么问题?
我听说 using namespace std; 是错误的,我应该直接使用 std::cout 和 std::cin 。 这是为什么呢?声明与 std 命名空间中的内容同名的变量是否存在风…
为什么必须通过 this 指针访问模板基类成员?
如果下面的类不是模板,我可以简单地将 x 放在 衍生 类中。但是,对于下面的代码,我必须使用this->x。为什么? template class base { protected: in…
std::list::remove 方法是否调用每个被删除元素的析构函数?
我有代码: std::list lst; //.... Node * node = /* get from somewhere pointer on my node */; lst.remove(node); std::list::remove 方法是否调用…
basic_ios 上标志的语义
我发现自己反复对 rdstate() 标志感到困惑 - good()、bad()、eof()、fail() - 以及它们如何在 basic_ios::operator!、operator bool 和 operator void…
为什么在打印未初始化的变量时会看到奇怪的值?
在下面的代码中,该变量没有初始值并打印了该变量。 int var; cout << var << endl; 输出:2514932 double var; cout << var << endl; 输出:1.23769e…
强制某些经营者成为会员的理由
C++ 中有 4 个运算符可以重载,但不能作为独立(又称非成员、独立)函数重载。这些运算符是: operator = operator () operator -> operator [] 这个…
为什么在宏中使用明显无意义的 do-while 和 if-else 语句?
在许多 C/C++ 宏中,我看到宏的代码包裹在看似无意义的 do while 循环中。以下是示例。 #define FOO(X) do { f(X); g(X); } while (0) #define FOO(X)…