在C ++中使用另一个函数的变量

时间:2015-09-21 02:10:39

标签: c++ vector

我想从顶部的函数中获取返回值,然后在底部的函数中使用它执行某些操作。我应该在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];
}

2 个答案:

答案 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();
    });
}