gpt4 book ai didi

Multimap 上的 C++ 泛型编程

转载 作者:太空狗 更新时间:2023-10-29 23:39:22 28 4
gpt4 key购买 nike

multimap 如下:

int main() {
multimap<int, string> coll;
coll = { {5, "tagged"} ,
{2, "a"} ,
{1, "this"} ,
{4, "of"} ,
{6, "strings"} ,
{1, "is"} ,
{3, "multimap"}
};
}

现在,我想得到一个像下面这样的函数模板来一个一个地打印这些容器中的所有值元素,包括 multimap 但不限于这种类型的 map 和这对特定的模板参数。

void PrintAllMaps(multimap<int, string> map) {
for (auto elem : map) {
cout << elem.second << ' ';
}
cout << endl;
}

最佳答案

including multimap but not limited

如果我没理解错的话,你想要一个模板模板函数:

template <
typename T1,
typename T2,
typename T3,
typename T4,
template <typename, typename, typename, typename> class M>
void PrintAllMaps(M<T1, T2, T3, T4>& map) {
...
}

请注意,std::multimap 和其他类似 std::map 的容器实际上采用超过 2 个模板参数,其余的具有默认类型。

参见 Live Demo

关于Multimap 上的 C++ 泛型编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36313920/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com