如何用7个整数创建std::vector?输入赋值后仅首个数值有效
问题解决:std::vector仅首个元素正确的原因及修复
你的代码问题出在逗号运算符的优先级上:std::cin >> a, b, c, d, e, f, g; 这段代码里,逗号运算符的优先级远低于>>输入运算符,实际执行逻辑是先完成std::cin >> a的输入操作,后面的b, c, ..., g只是单纯的变量引用,没有执行任何输入读取——这些变量未被初始化,最终存入vector的是它们的默认垃圾值(你看到的0是栈内存的随机初始值)。
修复方案
C++的std::cin输入操作支持链式调用,因为>>运算符会返回输入流本身,所以正确的连续输入写法应该是用>>连接每个变量:
std::cin >> a >> b >> c >> d >> e >> f >> g; std::vector<int> v{a, b, c, d, e, f, g};
这样每个变量都会依次从输入流中读取对应整数值,存入vector后所有元素都会正确。
内容的提问来源于stack exchange,提问作者Sam Vandenabeele
相关产品推荐
相关产品推荐

