C++读取用户输入比较数组

标签 c++ arrays c++11

<分区>

我有这段代码,它读取用户代码并将其存储在数组中,然后在每个数组上找到元素的总和并比较它们,代码如下:

#include <iostream>
#include <vector>
#include <numeric>

typedef std::vector<int> int_vec_t;

//Call by reference to set variables in function
void readData(int_vec_t& v1, int_vec_t& v2)
{
  v1 = int_vec_t{1,1,8}; //This only works for C++11
  v2 = int_vec_t{2,2,2};
}

void readUserData(int_vec_t& v)
{
  for(;;)
  {
    int val;
    std::cin>>val;
    if(val == 0) break;
    v.push_back(val);
  }
}

int main()
{
    using namespace std;

    int_vec_t A;
    int_vec_t B;

    readData(A,B);
    //Or
    readUserData(A);
    readUserData(B);

    int sumA = accumulate(A.begin(), A.end(), 0); //Then use iterators
    int sumB = accumulate(B.begin(), B.end(), 0);

    cout << ((sumA > sumB) ? "Array A Greater Than Array B\n" : "Array B Greater Than Array A\n");

    return 0;
}

但是上面的代码会产生以下错误:

test.cpp: In function ‘void readData(int_vec_t&, int_vec_t&)’:

我正在使用 g++ test.cpp -o test 来编译代码。我在这里缺少什么?

最佳答案

你不觉得编译应该是这样的吗:

$ g++ -std=c++11 test.cpp -o test ?

it keep taking inputs, how can i limit it to take only 5 elements per array

void readUserData(int_vec_t& v)
{
  for(int i = 0; i < 5; i++)
  {
    int val;
    std::cin>>val;
   // if(val == 0) return;
    v.push_back(val);
  }
}

Great thanks, in between the loop how can out put statement so that user knows he is entering array for array 1 and after that array 2?

void readUserData(int_vec_t& v, std::string default = "")
{
  for(int i = 0; i < 5; i++)
  {
    int val;
    std::cout << "Enter for "<< default << "[" << i << "]: ";
    std::cin>>val;
   // if(val == 0) return;
    v.push_back(val);
  }
}

并且从您的 main() 您可以发送不同的字符串。

例如像这样:

readUserData(A, "A");
readUserData(B, "B");

关于C++读取用户输入比较数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15227440/

相关文章:

C++ 修改字符串时遇到问题

Java - 将 ArrayList< int[] > 转换为 int[][]

javascript - 将数组拆分为二维数组 : Is There a Better Solution?

c++ - 如何检查一个类是否具有特定功能以避免编译时问题?

c++ - 如何提高该模式所需的模板递归深度?

c++ - 在 C++ 中的两个进程之间拥有无限对象队列的最佳方法

C++ - 验证正确的输入类型

c++ - vsync "wait"(阻塞)在什么时候发生?

c++ - C/C++ : Naming conventions for arrays?

c++ - 初始化嵌套模板类