Inconsistance passiert!C++ unordered_map Initialisierung was passiert mit dem zugrunde liegenden
Dieses Stück Code geht gut
class Solution {
public:
vector<int> topKFrequent(vector<int>& nums, int k) {
unordered_map<int, int> num_freq_map;
for(const auto &ele : nums) {
++num_freq_map[ele];
}
}
};
aber wenn ich geändert unordered_map<int, int> num_freq_map;
-unordered_map<int, int> num_freq_map
()
;
, ein Paar Klammern angehängt wird.
class Solution {
public:
vector<int> topKFrequent(vector<int>& nums, int k) {
unordered_map<int, int> num_freq_map();
for(const auto &ele : nums) {
++num_freq_map[ele];
}
}
};
Ich habe einen Fehler: Line 6: lvalue required as increment operand
Warum? Was ist mit meiner Variablen num_freq_map
beim Initialisieren passiert?
Wie sollte ich diese Art von Dingen lernen. Lesen Sie den Quelltext der Standard Template Library, richtig?
Grundsätzlich denkt es, dass Sie eine Funktion deklarieren. Verwenden Sie nicht '()', wenn keine Argumente vorhanden sind. –