int 型列表初始化 为何唯独9,10这两个数作为初始化的值 无法输入

C++语言 码拜 8年前 (2016-09-20) 818次浏览
代码如下:

void ToBeDouble(){
    vector<int> v{9,10};
    for(auto i = v.begin();(i != v.end())&&(!isspace(*i));i++){
        *i = *i * 2;
        cout<<*i<<" ";
    }
    cout << endl;
}

假如 9,10 换成别的数都可以正常运行
假如是9,10  就会没有输出–
为什么呢!

解决方案

5

引用:
Quote: 引用:

你确定用其他的数字可以?

可以啊 …..  试了好多了。代码有什么问题么?

vector不支持这种初始化的方法啊。
编译都不会通过的。

5

9是 tab啊,是空白字符,循环就结束了

5

查一下 ascii 表就行了,9 对应的是 space,循环直接终止了。不止 9,其他 space character 也一样,例如 11.

5

引用:
Quote: 引用:
Quote: 引用:
Quote: 引用:

你确定用其他的数字可以?

可以啊 …..  试了好多了。代码有什么问题么?

vector不支持这种初始化的方法啊。
编译都不会通过的。

本人记得vc2010  对C++11 标准不是完全支持吧……
是时候升级了–

是的,看来本人又老了。


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明int 型列表初始化 为何唯独9,10这两个数作为初始化的值 无法输入
喜欢 (0)
[1034331897@qq.com]
分享 (0)