相关疑难解决方法(0)

C++中的" - >"运算符是什么?

看完后隐藏功能和C++/STL的暗角comp.lang.c++.moderated,我完全惊讶的是,下面的代码片断编译并在两个Visual Studio 2008和G ++ 4.4的工作.

这是代码:

#include <stdio.h>
int main()
{
    int x = 10;
    while (x --> 0) // x goes to 0
    {
        printf("%d ", x);
    }
}
Run Code Online (Sandbox Code Playgroud)

我假设这是C,因为它也适用于GCC.标准中定义了哪里,它来自何处?

c++ code-formatting standards-compliance operators

8590
推荐指数
27
解决办法
75万
查看次数

为什么STL映射的[]运算符不是?

举例说明,为了这个问题:

void MyClass::MyFunction( int x ) const
{
  std::cout << m_map[x] << std::endl
}
Run Code Online (Sandbox Code Playgroud)

这不会编译,因为[]运算符是非const的.

这很不幸,因为[]语法看起来很干净.相反,我必须做这样的事情:

void MyClass::MyFunction( int x ) const
{
  MyMap iter = m_map.find(x);
  std::cout << iter->second << std::endl
}
Run Code Online (Sandbox Code Playgroud)

这一直困扰着我.为什么[]运算符是非常量的?

c++ const

81
推荐指数
3
解决办法
2万
查看次数