从整数数组初始化向量的程序.库特出现错误

Program to initialize a vector from an array of ints. Cout is getting error?

本文关键字:错误 程序 整数 数组 初始化 向量      更新时间:2023-10-16

arr1的第一个元素被添加了吗? cout给了我一个错误。我做错了什么?

#include <iostream>
using std::cin; using std::cout; using std::endl;
#include <string>
using std::string;
#include <vector>
using std::vector;
#include <cstddef>
using std::size_t;
int main ()
{
    vector <int> ivec1; //defines a vector named ivec1 to hold values not yet defined
    int arr1 [5] = {10, 20, 30 , 40, 50}; // defines array named arr1 with 5 values
    ivec1.push_back (arr1 [0]);
    cout << ivec1 << endl;
    return 0;
}

答案很简单:您正在调用的操作根本没有定义。IO流库不知道C++标准库容器(除了std::string),也不知道如何打印它们。您将需要自己执行此操作。

std::vector<int> v;
for(auto& x : v)
  std::cout << v << " "; // print each element
std::cout << std::endl; // and a linebreak

我想 cout 无法使用向量。我会实现这样的东西(我很抱歉我C++我自 2006 年以来就没有在C++写过......

#include "stdafx.h"
#include <iostream>
using std::cin; using std::cout; using std::endl;
#include <string>
using std::string;
#include <vector>
using std::vector;
#include <cstddef>
using std::size_t;
void fillVector(int output[], vector<int>& input, int size)
{
    for(int i=0;i<size; i++)
    {
        input.push_back(output[i]);
    }
}
void printVector(vector<int>& input)
{
    for(int i=0; i<input.size(); i++)
    {
        cout << input.at(i);
        if(i!=input.size()-1)
        {
            cout << ",";
        }
    }
    cout << endl;
}

int main ()
{
    vector <int> ivec1; //defines a vector named ivec1 to hold values not yet defined
    int arr1 [5] = {10, 20, 30 , 40, 50}; // defines array named arr1 with 5 values
    int sz = sizeof(arr1) / sizeof(int);
    fillVector(arr1, ivec1, sz);
    printVector(ivec1);
    return 0;
}