You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++中如何不声明临时变量就向vector emplace_back追加输入元素

无需临时变量的vector输入实现方案

完全可以去掉临时变量,以下是两种常用的实现方式:


方案1:预分配vector大小后直接按下标读取

和数组的写法逻辑完全一致,只要先把vector的大小设置为元素总数n,就可以直接通过下标操作接收输入:

vector<int> vec(n); // 初始化时直接指定大小为n
// 若已经声明空vector,可加一行 vec.resize(n);
for(int i = 0; i < n; i++) {
    cin >> vec[i];
}

这种写法和你给出的数组输入逻辑几乎完全相同,没有额外临时变量,可读性也很高。


方案2:使用STL算法省略显式循环和临时变量

借助标准库的输入迭代器和插入迭代器,可以不用手写循环,也完全不需要声明临时变量:

#include <iterator> // 需引入istream_iterator的头文件

vector<int> vec;
vec.reserve(n); // 预分配空间避免多次扩容,可选但推荐
std::copy_n(std::istream_iterator<int>(std::cin), n, std::back_inserter(vec));

这种写法更符合现代C++的编码风格,不需要手动管理下标,也没有显式的临时变量声明。


内容的提问来源于stack exchange,提问作者OREZ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 15:36:09