tuple元组的元素访问应该使用std::get
函数,而不是像数组一样使用[]运算符。
对于数组vector<tuple<int, int, int>> edges;按元组中的第三个元素进行排序
正确写法:
sort(edges.begin(), edges.end(), [](tuple<int, int, int> p1, tuple<int, int, int> p2){
return get<2>(p1) < get<2>(p2);
});
错误写法:
sort(edges.begin(), edges.end(), [](tuple<int, int, int> p1, tuple<int, int, int> p2){
return p1[2] < p2[2];
});