相关疑难解决方法(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万
查看次数

为什么使用迭代器而不是数组索引?

请使用以下两行代码:

for (int i = 0; i < some_vector.size(); i++)
{
    //do stuff
}
Run Code Online (Sandbox Code Playgroud)

还有这个:

for (some_iterator = some_vector.begin(); some_iterator != some_vector.end();
    some_iterator++)
{
    //do stuff
}
Run Code Online (Sandbox Code Playgroud)

我被告知第二种方式是首选.这究竟是为什么?

c++ iterator stl

227
推荐指数
13
解决办法
7万
查看次数

为什么size_t未签名?

Bjarne Stroustrup在C++编程语言中写道:

无符号整数类型非常适合将存储视为位数组的用途.使用无符号而不是int来再获得一位来表示正整数几乎不是一个好主意.通过声明无符号变量来确保某些值为正的尝试通常会被隐式转换规则所取代.

size_t似乎是无符号的"再获得一位代表正整数".那么这是一个错误(或权衡),如果是这样,我们应该在我们自己的代码中最小化它的使用吗?

Scott Meyers的另一篇相关文章就在这里.总而言之,他建议不要使用无符号in接口,无论值是否总是正数.换句话说,即使负值没有意义,也不一定要使用无符号.

c++ size-t unsigned-integer

56
推荐指数
2
解决办法
8485
查看次数

迭代器..为什么要使用它们?

在STL库中,一些容器具有迭代器,并且通常认为它们是迭代这些容器的优越方式,而不是简单的循环,例如

for ( int i=0; i < vecVector.size(); i++ )
{

..

}
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我为什么以及在什么情况下我应该使用迭代器以及在什么情况下上面的代码片段?

c++ iterator stl

22
推荐指数
2
解决办法
9794
查看次数