我试图写一个函数来表示一个二维向量,向量的每个元素都有两个信息。我想写一个方法来搜索向量,如果它发现第一个信息相同,它就删除元素。下面是我的代码:
class Droga {
public:
Droga (){};
Droga (int _dlugosc, int _miasto) {
dlugosc = _dlugosc;
miasto = _miasto;
}
int dlugosc;
int miasto;
};
class Drogi {
public:
Drogi(int n);
void dodajDroge(int a, int b, int d);
void usunDroge(int a, int b);
vector<vector<Droga> > drogi;
};
Drogi::Drogi(int n){
drogi.resize(n);
}
void Drogi::dodajDroge(int a, int b, int d) {
drogi[a].push_back(Droga(d,b));
}
void Drogi::usunDroge(int a, int b){
for (int i=0; i<drogi.size(); i++){
if (drogi[a][i].miasto==b) {
drogi[a].erase(drogi[a].begin()+i);
i--;
}
}
}
不幸的是,我的编译器不接受'erase'函数并显示,有“没有匹配的成员函数调用'erase'”。我不知道如何解决这个问题,或者是否有更好的方法来删除二维向量的某个元素。谢谢:)
1条答案
按热度按时间wsxa1bj11#
我觉得你需要的其实很简单。
C++20版本:
C++20版本之前: