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

时间:2015-01-12 00:50:02

标签: c++ class templates

我正在尝试为类中的项目处理问题,我们的数据结构和方法已经预定义了。我的工作是实现一些使用这些模板的功能。

例如,我应该创建一个follow函数,这样做:如果follows(q) q = {"h", "e", "l", "l", "o", "w", "r"}q类型为ArrayQueue ,它将创建一个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称为变量来进行修改?

1 个答案:

答案 0 :(得分:0)

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

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

假设您有一个变量the_array_map,它包含您正在构建的跟随者映射(并从函数返回)。

现在,您可以通过向其添加所需元素来更新followers