c++ - 在 C++ 中初始化一对数组

标签 c++ compiler-errors stl

我想用下面的方式初始化一对数组:

pair<int, int> adjs[4] = {{current_node.first-1, current_node.second}, {current_node.first+1, current_node.second}, {current_node.first, current_node.second-1}, {current_node.first, current_node.second+1}};

但是我的编译器 Code::Blocks 12.1 不断抛出错误:

brace-enclosed initializer used to initialize `std::pair<int, int>'|

我以前在在线编译器上使用过一次这种方法并且它有效。那么这是编译器的问题还是我的代码中的某些语法问题? 我不想一一初始化4对。请建议我可以摆脱此错误的方法。

最佳答案

这种通用初始化语法是 C++11 的一项功能,您使用的编译器可能不支持 C++11,但在线编译器支持。

您可以像这样初始化数组:

pair<int, int> adjs[4] = {make_pair(current_node.first-1, current_node.second), ...};

一个活生生的例子:http://ideone.com/ggpGX9

关于c++ - 在 C++ 中初始化一对数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26811196/

相关文章:

c++ - 如何使用以用户定义类型为键的std::maps?

c++ - 如何有效地从矩阵中生成行的随机子集

c++ - 为什么每次使用 std::random_device 和 mingw gcc4.8.1 运行都会得到相同的序列?

c++ - QuantLib-vc110-mt.lib中的 "mt"是什么意思?

C++ 弹道

c - 不确定为什么编译器会提示......函数 strchrnul 的隐式声明

c# - sealed 关键字会影响编译器对强制转换的看法

c++ - 放置 new[] 的开销

c++ - 如何管理指向对象的指针数组?

c - 如何修复c qsort函数中的 "discard const"(该数组是指针数组),可能与对指针的理解有关