#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 ()];
}