0

テンプレートで遊んだ。それらを使用して、コンテナーのタイプから抽象化することができます。たとえば、以下のベクターは任意の POD タイプにすることができます。

template<class T>
void show(vector<T> &a) {
typename vector<T>::iterator end = a.end(), start = a.begin();
  for(start; start!= end; start++) {
      cout<<*start<<" ";
   }
 }

私はそれを次のように使用します: vector<int> vect_storage; show(vect_storage);

ベクトルだけでなく、マップ、リスト、STLライブラリからのデキューも表示できるようなshowメソッドを作成することは可能でしょうか?

4

3 に答える 3

0

あなたのソリューションはすでに非常に近いです。そのようなベクトル仕様を削除するだけで機能します。

template<typename T> void show(T& a)
{
    auto end = a.end();
    auto start = a.begin();
    for(start; start != end; start++)
    {
        cout << *start << " ";
    }
}

int main(int, char**)
{
    vector<int> a(2,100);
    show(a);
    list<double> b(100, 3.14);
    show(b);
    return 0;
}
于 2013-10-26T09:46:31.563 に答える