template <typename T>
int compare(const T& a, const T& b)
{
return (a < b) ? -1 : (b < a ? 1 : 0);
}
int main()
{
auto p = compare(2, 1);
vector<int> vec1{ 1, 2, 3 }, vec2{4,5,6};
p = compare(vec2, vec1);
return0;
}
[练习]定义一个类似于标准库find算法的函数模板.
template <typename IteratorT,typename valueT>
IteratorT search(const IteratorT& beg,const IteratorT& end, const valueT& value)
{
auto it = beg;
while (it != end&&*it != value){ ++it; }
return it;
}
int main()
{
vector<int> a{ 1, 2, 3 };
list<int>b{ 4, 5, 6 };
auto res = search(a.begin(), a.end(), 7);
auto ans = search(b.begin(), b.end(), 6);
return0;
}