unordered_set 计数函数 returns 错误值
unordered_set count function returns wrong value
为什么有3
个a的时候set.count('a')
输出1
?
节目:
bool isAnagram(string s, string t) {
unordered_set<char> set;
for(int i=0; i<s.size(); i++){
set.insert(s[i]);
}
cout << endl << set.count('a') << endl;
return false;
}
输入:
s = 'anagram'
输出:
1
集合中只有一个 a
。如果你想要多个 a
s 你需要使用 multiset
.
示例:
#include <iostream>
#include <set>
#include <string>
size_t count_char(const std::string& s, char ch) {
// fill the set directly using the strings begin and end iterators
std::multiset<char> set(s.begin(), s.end());
return set.count(ch);
}
int main() {
std::cout << count_char("anagram", 'a') << '\n';
}
输出:
3
您必须在计数函数中指定范围:
count (InputIterator first, InputIterator last, const T& val)
示例:
#include <iostream>
#include <algorithm>
using namespace std;
int main(){
string s= "anagram";
cout << count(s.begin(), s.end(), 'a') << endl;
return 0;
}
输出:
3
为什么有3
个a的时候set.count('a')
输出1
?
节目:
bool isAnagram(string s, string t) {
unordered_set<char> set;
for(int i=0; i<s.size(); i++){
set.insert(s[i]);
}
cout << endl << set.count('a') << endl;
return false;
}
输入:
s = 'anagram'
输出:
1
集合中只有一个 a
。如果你想要多个 a
s 你需要使用 multiset
.
示例:
#include <iostream>
#include <set>
#include <string>
size_t count_char(const std::string& s, char ch) {
// fill the set directly using the strings begin and end iterators
std::multiset<char> set(s.begin(), s.end());
return set.count(ch);
}
int main() {
std::cout << count_char("anagram", 'a') << '\n';
}
输出:
3
您必须在计数函数中指定范围:
count (InputIterator first, InputIterator last, const T& val)
示例:
#include <iostream>
#include <algorithm>
using namespace std;
int main(){
string s= "anagram";
cout << count(s.begin(), s.end(), 'a') << endl;
return 0;
}
输出:
3