map<string, vector <pair<int, int> > > 推回对?

map<string, vector <pair<int, int> > > pushing back into pair?

本文关键字:lt gt int vector string map pair      更新时间:2023-10-16

我有这个map<string, vector <pair<int, int> > >变量,我正在推回一个值,但是code::blocks告诉我pair没有一个名为push_back的成员函数。我该怎么做才能让它推回对而不是pair<>.push_back() ?

这就是我所做的:

map<string, vector <pair<int, int> > > T;
for(int x = 0; x < data.size(); x++)
     T[data[x].str].push_back(data[x].PAIR)

,错误是:

error: no matching function for call to 'std::vector<std::pair<int, int>,
  std::allocator<std::pair<int, int> > >::push_back(std::map<int, int, 
    std::less<int>, std::allocator<std::pair<const int, int> > >&)'

我不确定你的问题。

下面的代码可以正常工作:

map<string, vector <pair<int, int> > > T;
pair<int, int> p;
p.first = 1;
p.second = 10;
T["Hello"].push_back(p);
cout << T["Hello"][0].first << endl;

提示您正在尝试推回一个std::map,而不是一对。你的data结构是什么样的?

向量确实有push_back()方法。最可能的数据[x]。PAIR不是PAIR类型。data[x].PAIR是什么类型?如果转换数据[x]。