我是多线程的新手,我正在练习一个小项目,但我无法弄清楚我做错了什么。我想检查是否连接了多个图表,每个图表都有另一个线程。我有一个使用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行长度的错误消息,我唯一可以理解的是“无效使用不完整类型的未来...”但我不知道是什么问题,我只是试图模仿我在一些关于异步未来的教程中看到的内容。我感谢任何帮助!