如何在不声明变量的情况下在向量中 emplace_back (追加)..?

how to emplace_back (append) in vector without declaring variables..?

如果输入的数量作为第一个输入给出。
如果我需要将它们存储在 vector
我可以通过创建一个变量并使用我可以将其附加到向量
中的变量来轻松地做到这一点 我很想知道,有没有其他方法可以让我不必使用变量..

输入

4
1 5 3 2

向量如何接受输入

vector<int>vec;
for(int i=0;i<n;i++)
{
    int x;
    cin>>x;    // any idea to remove using a variable here..?
    vec.emplace_back(x);
}

数组如何接受输入

int array[n];
for(int i=0;i<n;i++)
cin>>array[i];

是的,就这样做:

std::cin >> vec.emplace_back();

C++17 中 vector::emplace_back() 的 return 类型不再是 void。相反,它 return 是对插入元素的引用。所以 vec.emplace_back() 将默认构造一个元素, return 它的引用。

或使用STL算法(适用于C++03):

vector<int> vec;
vec.reserve(n); // good practice to reduce reallocation of memory
std::copy_n(std::istream_iterator<int>{std::cin}, n, std::back_inserter(vec));