代码如下:
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
vector不支持这种初始化的方法啊。
编译都不会通过的。
5
9是 tab啊,是空白字符,循环就结束了
5
查一下 ascii 表就行了,9 对应的是 space,循环直接终止了。不止 9,其他 space character 也一样,例如 11.
5
你确定用其他的数字可以?
可以啊 ….. 试了好多了。代码有什么问题么?
vector不支持这种初始化的方法啊。
编译都不会通过的。本人记得vc2010 对C++11 标准不是完全支持吧……
是时候升级了–
是的,看来本人又老了。