【发布时间】:2016-10-12 09:38:43
【问题描述】:
谁能就以下代码中 std::vector::push_back 调用中的 std::make_pair 调用的正确语法提出建议:
#include <array>
#include <vector>
#include <utility>
int main()
{
typedef std::pair<double, double> PairType;
std::vector<std::pair<double, std::array<PairType, 3> > > myVector;
double Key = 0.0;
PairType Pair1 = std::make_pair(1.0, 2.0);
PairType Pair2 = std::make_pair(3.0, 4.0);
PairType Pair3 = std::make_pair(5.0, 6.0);
myVector.push_back(std::make_pair(Key, { Pair1, Pair2, Pair3 } )); // Syntax Error
return 0;
}
编译器(MS VS2015.2)无法确定std::make_pair调用中第二个参数的类型,这可以理解但我不知道如何启发它。
【问题讨论】:
-
注意不需要make_pair:
myVector.push_back({Key, { Pair1, Pair2, Pair3 } });