c++ - 为什么我必须使用std::make_pair?

标签 c++ c++11 path-finding

我已经用过typedef

typedef std::pair<int, int> coords;
typedef std::pair<float, coords> fcoords;

然后创建此数据类型的 vector
std::vector<fcoords> openList;

因此,当我尝试向 vector 添加元素时,为什么必须使用make_pair进行处理
int i = _start.first;
int j = _start.second;
openList.push_back(std::make_pair(0.0, std::make_pair(i, j)));

为什么不能仅通过添加值来做到这一点?
openList.push_back(0.0f, (i, j));

最佳答案

您可以使用:

openList.push_back({0.0f, {i, j}});

关于c++ - 为什么我必须使用std::make_pair?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59254593/

相关文章:

c++ - 从文件中读取整数时的错误处理

c++ - 在 C++ 中创建线程池的最简单方法?

c++ - 连接 std::vector 和初始化列表

C++:解析一串带括号的数字

c# - 将网格转换为图表以进行导航

algorithm - 使用传送器寻路

c++ - Boost Json 写入错误:没有匹配函数来调用‘boost::property_tree::basic_ptree<std::__cxx11

c++ - 使用 gcc 4.2 在 Mac OS X 10.6.8 上安装 lxml

C++ 字符串字符数组

java - 寻路问题。返回的奇怪路径