Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 来自结构化绑定声明的混淆错误 #包括 #包括 #包括 使用名称空间std; int main(){ 向量点={3,12},{-2,5},{-4,1}; 矢量边; 对于(int u=0;u_C++_Algorithm_Vector_Tuples - Fatal编程技术网

C++ 来自结构化绑定声明的混淆错误 #包括 #包括 #包括 使用名称空间std; int main(){ 向量点={3,12},{-2,5},{-4,1}; 矢量边; 对于(int u=0;u

C++ 来自结构化绑定声明的混淆错误 #包括 #包括 #包括 使用名称空间std; int main(){ 向量点={3,12},{-2,5},{-4,1}; 矢量边; 对于(int u=0;u,c++,algorithm,vector,tuples,C++,Algorithm,Vector,Tuples,使用g++-std=c++17 main.cc编译 出现以下错误: main.cc:在函数“int main()”中: main.cc:20:20:错误:在“[”标记之前应为非限定id 用于(常数自动和[u,v,val]:边){ ^main.cc:20:20:错误:在“[”标记之前应为“;” main.cc:20:21:错误:“u”未在此范围内声明 用于(常数自动和[u,v,val]:边){ ^main.cc:20:24:错误:“v”未在此范围内声明 用于(常数自动和[u,v,val]:边){

使用
g++-std=c++17 main.cc编译

出现以下错误:

main.cc:在函数“int main()”中:

main.cc:20:20:错误:在“[”标记之前应为非限定id

用于(常数自动和[u,v,val]:边){ ^main.cc:20:20:错误:在“[”标记之前应为“;”

main.cc:20:21:错误:“u”未在此范围内声明

用于(常数自动和[u,v,val]:边){ ^main.cc:20:24:错误:“v”未在此范围内声明

用于(常数自动和[u,v,val]:边){ ^main.cc:20:27:错误:“val”未在此范围内声明

用于(常数自动和[u,v,val]:边){ ^main.cc:在lambda函数中:

main.cc:20:32:错误:在“:”标记之前应为“{”

用于(常数自动和[u,v,val]:边){ ^main.cc:在函数“int main()”中:

main.cc:20:32:错误:应为“;”之前“:”标记

main.cc:20:32:错误:应在“:”标记之前使用主表达式

main.cc:20:32:错误:在“:”标记之前应为“)”

main.cc:20:32:错误:应在“:”标记之前使用主表达式

如何修复此错误?
注意:gcc版本5.4.0

您的程序在C++17中格式良好,但您的gcc版本太旧,无法支持C++17:s结构化绑定

如中所述,结构化绑定()是为GCC 7实现的,因此在目前古老的GCC 5.4中(完全)不可用


我们可以通过注意您的程序为GCC 7.1()编译,而不是为GCC 6.3()编译来验证这一点。

您的程序在C++17中格式良好,但您的GCC版本太旧,无法支持C++17:s结构化绑定

如中所述,结构化绑定()是为GCC 7实现的,因此在目前古老的GCC 5.4中(完全)不可用


我们可以通过注意您的程序为GCC 7.1()编译,而不是为GCC 6.3()编译来验证这一点。

GCC 5.4.0是否支持
C++17
?在GCC 7中添加了结构化绑定支持。以下是参考:可能将
for(const auto&[u,v,val]:edges)
替换为
for(const auto&val:edges)
添加行号会有帮助。gcc 5.4.0是否支持
C++17
?gcc 7中添加的结构化绑定支持。参考:可能将
替换为(const auto&[u,v,val]:edges)
为(const auto&val:edges)
添加行号会有帮助。