C ++中的unordered_multiset指针

问题描述 投票:-1回答:1

我在C ++初学者,我想使用下面的unordered multiset指针的插入函数来添加新元素:

struct Customer {
 size_t operator()(const char& c) const;
};

unordered_multiset<char, Customer>* ms

任何人都可以帮忙吗?

c++ c++11
1个回答
1
投票
void populate_multiset(const string& s, unordered_multiset<char, CustomHasher>* ms)

鉴于此功能接受string和你的unordered_multiset接受char,你只能插入一个char

for(size_t i = 0; i<s.size(); i++) {
    ms->insert(s[i]); // insert each individual char
}

或者使用迭代器插入一系列char

ms->insert(s.begin(), s.end());

此外,由于标准库已经提供了散列char的方法。你可以简单地宣布

unordered_multiset<char> ms;

但是,如果您确实想要提供自定义哈希函数,则可以。语法与您在问题中的语法完全一样。

将容器传递给函数的一种更常见的方法是通过引用。例如

void populate_multiset(const string& s, unordered_multiset<char, CustomHasher>& ms) 

然后,您可以使用.而不是->来完成同样的事情。

© www.soinside.com 2019 - 2024. All rights reserved.