为什么不能使用带模板的迭代器?

时间:2015-09-25 10:38:32

标签: c++ templates vector

我想遍历一个矢量,但我不知道它的类型是什么。所以,我做了以下几点: -

template<typename T>
vector<int> sas_v(vector<T>vT,T val)
    {
      vector<int>il; //index_list
      vector<T>::iterator it;
      for(it = vT.begin();it!=vT.end();it++)

          {
             if(*it==val)
             il.push_back(it-vT.begin()); //0 based indexing
          }

      return il;
   }

但是我收到了很多错误。虽然我按照以下方式执行此操作,但为什么?

template<typename T>
vector<int> sas_v(vector<T>vT,T val)
{
    vector<int>il; //index_list
//    vector<T>::iterator it;
   // for(it = vT.begin();it!=vT.end();it++)
    for(int a=0;a<vT.size();a++)
    {
        if(vT[a]==val)
            il.push_back(a); //0 based indexing
    }

    return il;
}

0 个答案:

没有答案