我是一名從「C++ Primer第5版」練習的新手,第110頁,其內容如下: 編寫一個程序來打印矢量的大小和內容,如下所示。我可以使用模板處理迭代器嗎?
的(a)vector<int> v1;
(b)中vector<int> v2(10);
(F)vector<string> v6{10};
(克)vector<string> v7{10, "hi"};
能否使用模板函數來處理字符串和上述詮釋矢量? 我寫了這樣的功能:
template<class t>
void check_vector(vector<t> *_v)
{
if(_v->begin() == _v->end())
{
cout << "the vector is empty\n";
}
else
{
int i=0;
for(vector<t>::iterator it = _v->begin(); it != _v->end(); it++) //error.
{
cout << *it;
i++;
}
cout << "\nthe size is : "
<<i
<<"\n";
}
}
產生的誤差是需要「typename的」前「的std ::矢量::迭代器」,因爲「標準::矢量」是一個依賴範圍。
是否可以這樣做? 如果是這樣,我應該如何修復代碼? Thx。
什麼是「vector v1;」應該是什麼意思? – aschepler
所以把它放在那裏!通常你可以信任編譯器,如果它給你提示的話。 –
v1只是一個空向量。@ aschepler –