是否添加了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;
}
答案 0 :(得分: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
答案 1 :(得分:0)
我猜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;
}