Voici le code et le message d'erreur, des pensées pourquoi? J'ai essayé après avoir enlevé cette ligne de code Building t = beginEndMap[b.id];
, compile est ok. Mais ne peut pas comprendre l'occasionnel de cette ligne à l'erreur. Cette ligne n'est pas liée à la paire, mais l'erreur de compilation est liée à la paire.erreur de compilation bizarre concernant C++ std :: paire
Message d'erreur,
Error:
required from 'std::pair<_T1, _T2>::pair(std::piecewise_construct_t, std::tuple<_Args1 ...>, std::tuple<_Args2 ...>) [with _Args1 = {const int&}; _Args2 = {}; _T1 = const int; _T2 = Building]'
code source,
struct Building {
int id;
int pos;
int height;
bool isStart;
Building(int i, int p, int h, int s) {
id = i;
pos = p;
height = h;
isStart = s;
}
};
class Solution {
public:
vector<pair<int, int>> getSkyline(vector<vector<int>>& buildings) {
vector<Building> sortedBuilding;
unordered_map<int, Building> beginEndMap;
vector<pair<int, int>> result;
for (Building b : sortedBuilding) {
Building t = beginEndMap[b.id];
}
return result;
}
};
int main() {
}
Mais mon 'key_type' est' 'int' autre que Building', voir la définition' unordered_map beginEndMap', et voulez-vous dire '' value_type' autre que key_type '? –
@LinMa mon mauvais. 'value_type'. Je l'ai corrigé. – bolov
Merci, votre réponse a du sens pour moi, mais pourquoi l'erreur de compilation liée à la paire autre que quelque chose lié à unsorted_map? –