C++:如何创建返回向量/数组的返回函数
C++: How do you create a return function that returns a vector/array?
这是代码背后的动机。有一个叫鲍勃的男孩,今天是他的生日。他邀请了50个朋友过来,但并不是所有的朋友都想给他买礼物。鲍勃收到了50件礼物,尽管其中一些是空的。他的好朋友告诉他每第二个盒子就关上。对于每三个盒子,他应该将每个关闭更改为打开,每个打开都更改为关闭。他继续对 n 小于 50 的每个第 n 个盒子执行此操作。最后打开的盒子会有礼物。
这应该可以帮助我找出数学课的问题,但我不了解C++编程的所有复杂方面。我希望我的字符串getValue(vector &arr)返回一个数组/向量。这段代码无法编译,但它显示了我正在尝试执行的操作。
#include <iostream>
#include <vector>
#include<algorithm>
using namespace std;
string getValue(vector<string> &arr);
int main()
{
vector<string> myArr(2);
vector<string> newArr(2);
for(int i=2; i <= 50; i++)
{
if(i%2==0)
{
myArr.push_back("close");
}
else
{
myArr.push_back("open");
}
}
newArr = getValue(myArr);
for(int i=2; i <=50; i++)
{
cout << i << " " << newArr[i] << endl;
}
}
string getValue(vector<string> &arr)
{
for(int i=2; i <=50; i++)
{
if(arr[i]=="close")
{
arr[i]="open";
}
else if(arr[i]=="open")
{
arr[i]="close";
}
}
return arr;
}
让你的string getValue(vector<string> &arr)
返回数组/向量。它只能返回一个string
。如果您希望函数返回数组/向量,则必须在函数签名中说明。
您通过引用将向量传递到getValue()
中,这意味着您在该函数中对其所做的更改将影响原始函数(换句话说,您不是在向量的副本上操作 - 您实际上是在向量上操作)。
因此,您无需从getValue()
返回任何内容 - 只需将其void
,它应该可以满足您的需求。
字符串getValue(vector &arr) - 返回类型是字符串,而不是vector。您需要更改其返回类型或将其设置为 none。
附注:newArr = getValue(myArr);它在示波器后面,定位错误...该死的,第三个PS,分配了错误的代码规则
对于语法部分:-
-
函数的返回类型为字符串。将其更改为矢量您的功能正常工作。
-
您可以简单地全局声明向量。这将消除需要将其传递给函数并返回它。
对于逻辑部分:-
您的问题说 Bob 每三个框切换一次,但在您的程序中,Bob 正在更改每个框以打开(如果关闭)和每个框以关闭(如果打开)。如果你在问题中写的内容是正确的,你的代码应该是这样的。
#include <iostream>
#include <vector>
using namespace std;
void getValue();
vector<string> myArr(2);
int main()
{
for(int i=2; i <= 50; i++)
{
if(i%2==0)
{
myArr.push_back("close");
}
else
{
myArr.push_back("open");
}
}
getValue();
for(int i=2; i <=50; i++)
{
cout << i << " " << myArr[i] << endl;
}
}
void getValue()
{
for(int i=3; i <=50; i+=3)
{
if(myArr[i]=="close")
{
myArr[i]="open";
}
else if(myArr[i]=="open")
{
myArr[i]="close";
}
}
}
- 如何返回向量的常量引用?
- 如何在C++中返回向量的从零开始的索引
- 当函数返回C++向量实例时,它正在运行
- 从函数返回向量以打印内容
- 返回向量的单个索引值
- 为什么我不能返回向量<向量<int>>(进程返回 -1073741819 (0xC0000005))
- 返回向量元素的 l 值的正确方法是什么?
- 为什么通过引用返回向量比通过移动返回要快得多?
- 返回向量 C++ 上的递归
- C++ std::find() 寻址返回向量的类函数时的意外行为
- 如何在返回向量中访问系数
- C++ 函数返回向量中最小的正整数
- 查找并将指针返回向量中的对象
- getCompatibleComponent返回向量错误
- 如何从 JNI 返回向量<向量<float>>?
- 为什么下面的代码返回向量大小为 10
- 从函数返回向量时C++中止(核心转储)
- 如何正确地将向量<int>转换为空隙*并返回向量<int>?
- 接口 PTR 的返回向量C++
- C++ cv::Mat 返回向量的<rectangle>线程异步