1

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;
}
4

2 に答える 2

1

答えは非常に簡単です。呼び出している操作が単に定義されていません。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
于 2012-10-21T20:25:48.673 に答える
0

cout はベクトルを扱うことができないと思います。私はこのようなものを実装します(2006年以来C ++で書いていない私の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;
}
于 2012-09-25T04:44:32.423 に答える