繁体   English   中英

如何在模板类C ++中使用具有多个参数的模板函数

[英]How to use a template function with multiple parameters in a template class C++

我正在尝试为班级中的一个项目的问题做准备,其中我们的数据结构和方法已经预先定义。 实现使用这些模板的某些功能是我的工作。

例如,我应该创建一个following函数,该函数将执行此操作:如果我follows(q) ,其中q = {"h", "e", "l", "l", "o", "w", "r"}并且q的类型为ArrayQueue ,它将创建一个ArrayMap ,该ArrayMap将单个队列值作为键,并在该队列值旁边保存一组值。

如果我查看地图内部,它将看起来像这样:

Key -> Set Containing the Values
h -> set[e]
e -> set[l]
l -> set[l, o]
o -> set[w]
w -> set[r]

现在,我应该通过使用以下模板签名来实现此功能:

template<class T>
ics::ArrayMap<T,ics::ArraySet<T>> follows (const ics::ArrayQueue<T>& q) 
{
}

尽管我了解执行此操作的一般逻辑,但我确实需要做一件事:能够访问和更新返回的ArrayMap的第二个参数,即ics::ArraySet<T>

那么,如何将这个ArraySet作为变量进行修改呢?

根据您的描述,听起来您应该能够执行以下操作:

ics::ArraySet<T>& followers = the_array_map[x];

假设您有一个变量the_array_map ,该变量保存您正在构造(并从该函数返回)的跟随者映射。

现在,您可以通过将所需元素附加到followers来更新followers

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM