我想从顶部的函数中获取返回值,然后在底部的函数中使用它执行某些操作。我应该在bottom函数中放置什么来使用从“loadVectorWithReturn”返回的值
我确实意识到我可以创建一个新变量并将其存储在那里供以后回忆,但我现在正在尝试做更复杂的事情。
谢谢
double vectors1::loadVectorWithReturn() {
vectors1 v1;
for (int i = 0; i <= 10; i++) {
v1.value.push_back(i);
cout << v1.value[i] << ", ";
}
cout << endl;
cout << v1.value[5] << endl;
return v1.value[5];
}
double doSomethingWithVectorReturn(TAKE IN VALUE FROM loadVectorWithReturn) {
//do something with v1.value[5];
}
答案 0 :(得分:1)
如果您说,&#34;我不想为v1&#34;制作全局变量,您可以这样做。
double vectors1::loadVectorWithReturn() {
vectors1 v1;
for (int i = 0; i <= 10; i++) {
v1.value.push_back(i);
cout << v1.value[i] << ", ";
}
cout << endl;
cout << v1.value[5] << endl;
return v1.value[5];
}
double vectors1::doSomethingWithVectorReturn() {
int returned = loadVectorWithReturn();
//Do something with returned.
}
注意:&#34; vectors1 ::&#34;在&#34; doSomethingWithVectorReturn&#34;前面允许&#34; doSomethingWithVectorReturn&#34;使用&#34; loadVectorWithReturn&#34;功能强>
请记住,如果您只使用&#34;返回&#34;值一次(或多次,虽然在许多情况下可能会慢),您可以跳过设置变量并只使用&#34; loadVectorWithReturn()&#34;代替它。
示例(只需输入值):
double vectors1::doSomethingWithVectorReturn() {
cout << loadVectorWithReturn();
}
答案 1 :(得分:0)
我觉得你需要这个,因为你会在doSomethingWithVectorReturn中使用loadVectorWithReturnlater。
如果是这种情况,我们可以使用:
#include <iostream>
#include <functional>
struct A
{
int fooA() const
{
return 5;
}
};
void doSomethingWithA( std::function<int()> foo )
{
std::cout << foo();
}
int main()
{
A a;
doSomethingWithA([a]()
{
return a.fooA();
});
}