袁博特 2020-07-06 19:33 采纳率: 25%
浏览 113

泛型编程,请问这个小案例为何报错no matching function for call to "find"

#include <iostream>
#include<vector>

using namespace std;


template <typename elemtype>
elemtype* find(const elemtype *first,
               const elemtype *last,
               const elemtype &value);

template <typename element>
inline element* begin(const vector<element> &vec);

template <typename element>
inline element* end(const vector<element> &vec);


int main()
{

    vector <int> svec{1,2,3};
****    int* it = find(begin(svec),end(svec),svec);****
    return 0;
}


template <typename elemtype>
elemtype* find(const elemtype *first,
               const elemtype *last,
               const elemtype &value)
{
    if(!first||!last)
        return 0;
    for(;first!=last;++first)
        if(*first==value)
            return first;
    return 0;
}

template <typename element>
inline element* begin(const vector<element> &vec)
{
    return vec.empty() ? 0 : &vec[0];
}

template <typename element>
inline element* end(const vector<element> &vec)
{
    return vec.empty() ? 0 : &vec[vec.size ()];
}
  • 写回答

1条回答 默认 最新

  • zqbnqsdsmd 2020-08-02 15:33
    关注
    评论

报告相同问题?