将整数输入写入 C++ 中的向量容器

发布于 2024-10-17 13:55:50 字数 202 浏览 9 评论 0原文

同样,我们在数组中

for (.....)
  cin>>a[i];

如何使用向量来做到这一点。我声明了一个整数向量,

vector<int> v;

现在我需要从控制台获取输入并将其添加到向量中。我正在使用向量,因为我不知道限制。

likewise we do in array

for (.....)
  cin>>a[i];

how we can do this using vectors. i declared a vector of integers

vector<int> v;

now i need to take inputs from console and add append those in vector.i am using vector because i donot know the limit.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

酒浓于脸红 2024-10-24 13:55:50

要从控制台将整数插入向量并打印出所有内容:

int input;
vector<int> v;
while(cin >> input){
 v.push_back(input);
}

for(int i = 0; i<v.size(); i++){
 cout<< v[i] <<endl;
}

向量还提供了打印最大大小的功能:

cout << v.max_size()<<endl;

To insert integer to a vector from console and print everything out:

int input;
vector<int> v;
while(cin >> input){
 v.push_back(input);
}

for(int i = 0; i<v.size(); i++){
 cout<< v[i] <<endl;
}

And vector also provides you to print out the max size with:

cout << v.max_size()<<endl;
锦欢 2024-10-24 13:55:50

如果向量未使用初始容量进行初始化,则使用如下所示的内容:

int temp;
for (...) {
    cin >> temp;
    v.push_back(temp);
}

If the vector isn't initialized with an initial capacity, then use something like this:

int temp;
for (...) {
    cin >> temp;
    v.push_back(temp);
}
眼眸 2024-10-24 13:55:50

稍微更紧凑的版本:

#include <algorithm>
#include <iostream>
#include <iterator>
#include <vector>

std::istream_iterator< int > iterBegin( std::cin ), iterEnd;

// using the range constructor
std::vector< int > vctUserInput1( iterBegin, iterEnd );

// using the copy & back_inserter
std::vector< int > vctUserInput2;
std::copy( iterBegin, iterEnd, std::back_inserter( vctUserInput2 ) );

Slightly more compact versions:

#include <algorithm>
#include <iostream>
#include <iterator>
#include <vector>

std::istream_iterator< int > iterBegin( std::cin ), iterEnd;

// using the range constructor
std::vector< int > vctUserInput1( iterBegin, iterEnd );

// using the copy & back_inserter
std::vector< int > vctUserInput2;
std::copy( iterBegin, iterEnd, std::back_inserter( vctUserInput2 ) );
随心而道 2024-10-24 13:55:50

试试这个

std::copy( std::istream_iterator<int>(std::cin),
            std::istream_iterator<int>(),
            std::back_inserter( v ) );

请参阅此处

您可以将其简化为创建向量并使用迭代器初始化它:

std::vector<int>  v(std::istream_iterator<int>{std::cin},
                    std::istream_iterator<int>{});

Try this

std::copy( std::istream_iterator<int>(std::cin),
            std::istream_iterator<int>(),
            std::back_inserter( v ) );

See here

You can simplify this to just creating the vector and initializing it with iterators:

std::vector<int>  v(std::istream_iterator<int>{std::cin},
                    std::istream_iterator<int>{});
橪书 2024-10-24 13:55:50

最简单的解决方案是使用istream_iterator。你不想要 std::copy ,强硬,因为那是贪婪的。它会读取所有内容。相反,使用这个:

std::istream_iterator<int> iter(std::cin);
vector<int> v;
for(.....)
   v.push_back(*iter++);

The easiest solution is with an istream_iterator. You don't want std::copy, tough, because that's greedy. It will read everything. Instead, use this:

std::istream_iterator<int> iter(std::cin);
vector<int> v;
for(.....)
   v.push_back(*iter++);
淡紫姑娘! 2024-10-24 13:55:50

通过 C++ 中的向量获取用户输入的小程序

#include <bits/stdc++.h>
using namespace std;

int main()
{
    vector<int> v1;
    int input;
    cout<<"Enter elements in vector";
      for (int i=0;i<10;i++)
       {
         cin>>input;
         v1.push_back(input);
       }

       cout<<"Elements in vector";
       for (int i=0;i<10;i++)
        {
          cout<<v1[i]<<"\n";
        }
         return 0;
 }

Small program for taking input from user through vector in c++

#include <bits/stdc++.h>
using namespace std;

int main()
{
    vector<int> v1;
    int input;
    cout<<"Enter elements in vector";
      for (int i=0;i<10;i++)
       {
         cin>>input;
         v1.push_back(input);
       }

       cout<<"Elements in vector";
       for (int i=0;i<10;i++)
        {
          cout<<v1[i]<<"\n";
        }
         return 0;
 }
山色无中 2024-10-24 13:55:50

当未给出输入数量时,我们将进行这样的编码

#include<iostream>
using namespace std;

#include<vector>

int main()
{
    int i ;
    vector<int> v;
    while(i != -1)
    {
        cin >> i;
        v.push_back(i);
    }
}

/在上面的代码中,我正在接受输入,直到用户未输入-1。在您的问题中,还必须给出一些条件而不是输入数量,并且如果给出输入的数量,那么就很容易接受输入。代码是:/

for (i=0; i<n; i++)
{
    cin >> i;
    v.push_back(i);
}

When number of inputs are not given then we to code like that

#include<iostream>
using namespace std;

#include<vector>

int main()
{
    int i ;
    vector<int> v;
    while(i != -1)
    {
        cin >> i;
        v.push_back(i);
    }
}

/In above code i am taking input till user has not entered -1.In your question also there must be some condition given instead of number of inputs and if the number of inputs are given then it's very easy to take input.The code for that is:/

for (i=0; i<n; i++)
{
    cin >> i;
    v.push_back(i);
}
拥醉 2024-10-24 13:55:50

您还可以动态分配数组,然后在向量中使用它。

这就是您可以做的,

#include<bits/stdc++.h>
int main()
{
 int n;cin>>n;
 vector<int>v(n);
 for(int i=0;i<n;i++){
 cin>>v[i];
}
for(auto x:v){
cout<<x<<" "<<endl;
}
}

这是您可以做的简单方法。

You can also dynamically allocate an array and then use it in a vector.

Here it is what you can do,

#include<bits/stdc++.h>
int main()
{
 int n;cin>>n;
 vector<int>v(n);
 for(int i=0;i<n;i++){
 cin>>v[i];
}
for(auto x:v){
cout<<x<<" "<<endl;
}
}

Its an Easy approach you can do.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文