📜  C++ STL中的unordered_multiset size()(1)

📅  最后修改于: 2023-12-03 14:59:46.992000             🧑  作者: Mango

C++ STL中的unordered_multiset size()

在C++中,unordered_multiset是一个基于哈希表的容器,可以存储多个相同的元素,且元素的顺序是无序的。这篇文章将介绍unordered_multiset的size()函数。

size()函数简介

unordered_multiset::size()函数用于返回unordered_multiset中存储元素的个数。其语法如下:

size_type size() const;

其中,size_type是无符号整数类型,表示元素的个数。

使用示例

以下是一个使用unordered_multiset::size()函数的示例程序,用于计算一段文本中各单词出现的次数:

#include <iostream>
#include <unordered_set>
#include <string>
#include <sstream>

int main() {
    std::string text = "This is a sample text for testing unordered_multiset in C++ STL. "
                       "This text test the usage of unordered_multiset::size() function.";

    std::unordered_multiset<std::string> words;
    std::istringstream iss(text);

    for (std::string word; iss >> word; ) {
        words.insert(word);
    }

    for (const auto& word : words) {
        std::cout << word << ": " << words.count(word) << std::endl;
    }

    std::cout << "The number of distinct words: " << words.size() << std::endl;

    return 0;
}

在上面的示例程序中,我们使用了std::unordered_multiset来存储单词。在遍历unordered_multiset中的单词时,我们使用了unordered_multiset::count()函数来计算每个单词出现的次数。最后,我们使用unordered_multiset::size()函数来获得unordered_multiset中不同单词的个数。

执行结果

以下是上述示例程序的执行结果:

text: 2
a: 1
C++: 1
for: 1
in: 1
is: 2
multi: 1
of: 1
sample: 1
STL.: 1
test: 1
testing: 1
text: 1
the: 2
This: 2
function.: 1
function.: 1
unordered_multiset: 2
usage: 1
The number of distinct words: 17

可以看到,程序成功计算出了各个单词在文本中出现的次数,并通过unordered_multiset::size()函数计算出了unordered_multiset中不同单词的个数。

总结

unordered_multiset::size()函数是一个用于获取unordered_multiset中元素个数的方便函数,可以方便地用于统计unordered_multiset中不同元素的个数。