C++primer习题给个答案

acrobatyuer 2009-01-31 09:38:13
真是郁闷了,这么个题逻辑思路倒是有,但就是写不出来,不好意思求助啦!

编写一个函数,其形参是一对迭代器和一个int型数值,实现在迭代器标记的范围内寻找该int型值的功能,并返回指向找到的元素的迭代器。确保程序在要寻找的元素不存在的时也能正确工作。。。




唉!我丢人啊!~~~~~~~~
...全文
86 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
tangshuiling 2009-01-31
  • 打赏
  • 举报
回复

完整的调用~~!
#include <iostream>
#include <vector>
using namespace std;
template <class T>
typename T::iterator
Find_value( typename T::iterator first,const typename T::iterator last,const typename T::value_type value)
{
while(first!=last)
{
if(*first==value)
{
return first;
}
first++;
}
return last;
}
int main()
{
vector<int> test;
for(int i=0;i<10;++i)
{
test.push_back(i);
}
vector<int>::iterator pos=Find_value<vector<int> >(test.begin(),test.end(),5);
cout<<*pos<<endl;

return 0;
}

acrobatyuer 2009-01-31
  • 打赏
  • 举报
回复
#include <iostream.h>
#include <vector>
using namespace std;


vector<int>::iterator Find_value( vector<int>::iterator first,const vector<int>::iterator last,int value)
{
while(first!=last)
{
if(*first==value)
{
return first;
}
first++;
}
return last;
}





void main()
{
vector<int> ivec(10);
vector<int>::iterator begin=ivec.begin();
vector<int>::iterator end=ivec.end();
vector<int>::iterator val;
val=Find_value(begin,end,0);
cout<<*val<<endl;
}



原来这样也可以啊!
acrobatyuer 2009-01-31
  • 打赏
  • 举报
回复
三楼的,可以帮我写个完整的文件吗???


我写过一个,测试的时候全是错误。。。
acrobatyuer 2009-01-31
  • 打赏
  • 举报
回复
我想说一下,如果不用类模板怎么去实现呢!
tangshuiling 2009-01-31
  • 打赏
  • 举报
回复

2楼的代码有点问题,参看下面的
template <class T>
typename T::iterator
Find_value( typename T::iterator first,const typename T::iterator last,int value)
{
while(first!=last)
{
if(*first==value)
{
return first;
}
first++;
}
return last;
}
tangshuiling 2009-01-31
  • 打赏
  • 举报
回复

有虚心求教的心态总是好的,没什么丢人的,参看如下代码
template <class T>
typename T::iterator
Find_value(const typename T::iterator first,const typename T::iterator last,int value)
{
while(first++!=last)
{
if(*first==value)
{
return first;
}
}
return first;
}

64,674

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧