我理解如何操作函数中的向量,但我对如何返回该向量感到困惑。我是C ++的新手,我很感激任何指导。我目前在这个函数中使用这些库:
#include<iostream>
#include<vector>
#include<string>
using std::cin; using std::cout; using std::endl;
using std::string; using std::vector;
我不确定我是否已经遗漏了在编译期间导致许多错误的内容,但这是我初始化我的程序的内容。编译时我似乎有很多错误。我注意到很多关注ostream的错误,这可能是我问题的根源。这是我想要运行的代码。这是我在函数中想要做的一个愚蠢的版本,但我对这些小代码的大量错误感到困惑,我假设它是从尝试返回向量派生的。感谢您提供给我的任何帮助。
vector<long> function(long small,long big){
vector<long> vec;
vec.push_back(big);
vec.push_back(small);
return vec;
}
int main(){
cout << function(1, 2);
}
答案 0 :(得分:-1)
您的问题不是返回矢量,而是尝试输出矢量。您可以从向量输出元素,但没有预定义的函数来输出向量。您可以将一个向量分配给返回的向量,然后遍历该向量(Option1),或者编写一个函数来输出向量(选项2和3)。
Option 1:
std::vector<long> vec;
vec = function(1, 2);
for(long i: vec)
std::cout << vec.at(i) << " ";
Option 2:
void printVector(std::vector<long> vec)
{
for(long i: vec)
std::cout << vec.at(i) << " ";
}
Option 3:
std::ostream& operator<<(std::ostream& out, std::vector<long> vec)
{
for(long i: vec)
out << vec.at(i) << " ";
return out;
}
int main()
{
std::vector<long> vec;
//Do whatever to vec
printVector(vec);
std::cout << vec;
return 0;
}
所有选项都会提供完全相同的输出 如果你想正确地做&#34;&#34;你应该把它作为模板功能,但是你很新,我不会进入那个。但是,如果您确实希望here是演练。