我完成了实验室问题,但有一个快速的问题要解决。我在函数中有一个向量需要返回到main,以便可以输出向量的元素。我放 返回 在函数的末尾,因为a是函数中向量的名称,但出现错误。
*上面写着“ cout <<名称是”,但我不知道该在返回中输入什么。 *我也把return 0放进去,因为这是我使整个程序工作的唯一方法,因为输出也在函数中,但是我需要在main中返回它并更改return 0; 抱歉,如果我仍在学习这个问题,谢谢。
string switching(vector<string> a, int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
if (a[i] > a[j]) {
swap(a[i], a[j]);
}
}
}
cout << "The order of names are...\n";
for (int i = 0; i < n; i++) {
cout << a[i] << "\n";
}
return 0;
}
答案 0 :(得分:1)
如建议的那样,您可以将功能签名更改为
std::vector<std::string> switching(std::vector<std::string> a, int n)
或者,您可以通过引用传递字符串向量参数:
void switching(std::vector<std::string>& a, int n)
这显示了主调用的第一个版本:
#include <iostream>
#include <string>
#include <vector>
std::vector<std::string> switching(std::vector<std::string> a, int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
if (a[i] > a[j]) {
swap(a[i], a[j]);
}
}
}
return a;
}
int main()
{
std::vector<std::string> strings{
"John",
"Fred",
"Alice"
};
auto sorted = switching(strings, strings.size());
std::cout << "The order of names are...\n";
for (auto const& name : sorted) {
std::cout << name << "\n";
}
return 0;
}
答案 1 :(得分:0)
1。您可以修改函数的返回类型;
vector<string> switching(vector<string> a, int n)
{
//Your core-code here;
return a;
}
void switching(vector<string> &a, int n)
{
//Your core-code here;
}
这样,可以在主功能中同时更改参数。