【发布时间】:2011-12-25 19:18:52
【问题描述】:
我正在尝试解决以下考试问题,但我遇到了困难。
编写一个 C++ 函数
find_elem,它首先和最后两个迭代器T类型的一些元素序列和T类型的对象obj。它 将迭代器返回到范围内第一次出现的obj(first,last),或者如果obj不在序列中,则迭代器最后。 (35%)注意:
first&last不一定与返回的相同 容器的begin()和end()方法!我们唯一的假设是 容器是某种序列(例如,向量、列表、 等),第一个是一个迭代器,它指向一个元素 出现在最后指出的那个之前。你不能最后取消引用 因为它可能是end()的结果!
这是我的尝试
template<typename Iter, typename Obj>
Iter find_element(Iter iter1, Iter iter2, Obj &obj){
for(p = iter1; p != iter2; p++){
if((*p) == obj){
return p;
}
return iter2;
}
}
这种尝试正确吗?返回类型是否适合该函数或我的想法有误?
【问题讨论】: