![](/img/trans.png)
[英]how to use a sublass of a template class to deduce the template parameters of a template function in 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.