ここにコードとエラーメッセージがあります。このコード行を削除してみたところBuilding t = beginEndMap[b.id];
、コンパイルはOKです。しかし、エラーにこの行のカジュアルを把握することはできません。この行はペアに関連していませんが、コンパイルエラーはペアに関連しています。C++ std :: pairに関する奇妙なコンパイルエラー
エラーメッセージ、
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]'
ソースコード、
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() {
}
しかし、私の 'key_type'が他のint' Building'' 'よりもある、定義' unordered_map beginEndMap'を見て、あなたが '' key_type以外value_type'意味ですか'? –
@LinMa私の悪い。 'value_type'です。私はそれを訂正した。 – bolov
ありがとう、あなたの返事は私には合っていますが、なぜコンパイルエラーは何かの他の組み合わせに関連してunsorted_mapに関連していますか? –