我有一個嵌套的模板參數,形式爲C++向量的鏈表
vector<list<int, string> >
。
也就是說,它是保持整數值和串詞鏈表的載體。如果這不是一個有效的表單,請讓我知道。我的問題是在調用它。如果'table'是上述數據類型,那麼將索引作爲例如table [0]調用是否可以?如果是這樣,我該如何開始瀏覽該索引中的鏈表?
我有一個嵌套的模板參數,形式爲C++向量的鏈表
vector<list<int, string> >
。
也就是說,它是保持整數值和串詞鏈表的載體。如果這不是一個有效的表單,請讓我知道。我的問題是在調用它。如果'table'是上述數據類型,那麼將索引作爲例如table [0]調用是否可以?如果是這樣,我該如何開始瀏覽該索引中的鏈表?
隨着您已經定義了嵌套的數據結構,你是完全正確的調用索引像你所說,table[0]
。您可以完全執行您的列表操作。爲了使你的代碼更乾淨,它可以幫助做一些事情,如:
list<string> listInVector = table[i];
所以你不要混淆在table
上的索引進行操作,而是可以使用該標識使代碼更乾淨。
鑑於複製容器往往是相當昂貴的,我猜you'd真的想用'的std ::列表
在容器中的元素是單獨的元件。如果你想有多個元素,例如,int
和std::string
你需要把它們放入一個合適的結構,例如,爲std::pair<int, std::string>
:
std::vector<std::list<std::pair<int, std::string>>> table;
走在了列表中的元素在特定的位置你可以使用,例如:
std::list<std::pair<int, std::strin>>::iterator it(table[i].begin()), end(table[i].end());
for (; it != end; ++it) {
std::cout << "int=" << it->first << " string=" << it->second << "\n";
}
「如果這不是一個有效的形式,請讓我知道」
是其無效的,我想你的意思是: -
std::vector< std::list<std::pair<std::string, int> > > table ;
如何進入?
喜歡的東西: -
typedef std::pair<std::string , int> ele;
std::list<ele>::iterator it = table[i].begin(); //for ith table
for(;it!=table[i].end();++it)
std::cout<<it->first<<" "<<it->second;
你如何開始走路鏈表如果*不*在一個載體?這樣做,但對於'table [n]'的鏈表。還請注意:您的'列表'無效。假設這是你正在使用的'std :: list'沒有這種類型。我想你的意思'的std ::向量<性病::名單>' –
WhozCraig
表[0]將只是你的第一個列表,然後你走過它,你會通過任何其他名單做。雖然你的意思可能是'list>' –
Ashalynd
請發表你已經試過的例子代碼。 – kfsone