如何以正确的方式使用std :: future?

时间:2017-04-20 00:52:27

标签: c++ multithreading future

我是多线程的新手,我正在练习一个小项目,但我无法弄清楚我做错了什么。我想检查是否连接了多个图表,每个图表都有另一个线程。我有一个使用DFS的类Graph,它可以决定它但不是以多线程方式。图表来自.txt文件,我用它们填充向量。这是我的代码:

bool IsConnected(Graph gr)
{
    bool visited[gr.graphMap.size()];
    for(int i=0; i<gr.graphMap.size(); i++)
        visited[i] = false;

    gr.DFSUtil(gr.graphMap.begin()->first, visited);
    for(int i=0; i<gr.graphMap.size(); i++)
        if (visited[i] == false)
            return false;

    return true;
}

//...now we're in main()
vector<Graph> graphs;

//n = the number of graphs in the vector
vector<future<bool>> results;
for(int i=0; i<n; i++)
    results.push_back(async(launch::async, IsConnected, graphs[i]));

当我尝试编译它时,我得到一个大约50行长度的错误消息,我唯一可以理解的是“无效使用不完整类型的未来...”但我不知道是什么问题,我只是试图模仿我在一些关于异步未来的教程中看到的内容。我感谢任何帮助!

0 个答案:

没有答案