簡體   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