我声明了一对矢量:
vector <pair <int, int> > args;
然后我想把一对推入这样的矢量:
args.push_back((1,-1));
它告诉我逗号的左手操作数没有效果。 我哪里出错?
答案 0 :(得分:7)
说args.push_back(std::make_pair(1,-1));
。或任意数量的替代方案:
// #1
args.push_back(std::pair<int, int>(1,-1));
// #2
typedef std::vector< std::pair<int, int> > pvector;
pvector args;
args.push_back(pvector::value_type(1,-1));
// #3
typedef std::pair<int, int> intpair;
std::vector<intpair> args;
args.push_back(intpair(1,-1));
// #4
args.emplace_back(1, -1); // sexy
//...
答案 1 :(得分:0)
(1,-1)是一种语法,意思是'评估1,评估-1,然后使用-1作为值'。它与制作一对实例无关。您必须使用std::make_pair(1,-1)
来制作您推送的那对。