如若使用find返回的结果显示要查找的东西在列表中的位置

如果使用find返回的结果显示要查找的东西在列表中的位置?
#include "../../_h_file_/std_lib_facilities.h"

namespace My{
template< class Lter1, class Lter2 >
Lter2 copy( Lter1 f1, Lter1 e1, Lter2 f2 )
{
if( f1 == e1 )
return f2;
while( f1 != e1 ){
*f2 = *f1;
++f1;
++f2;
}
return f2;
}
};

int main()
{
int a1[ 10 ] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
vector< int > v1( a1, a1 + 10 );
list< int > l1( a1, a1 + 10 );

int a2[ 10 ];
for( int i = 0; i < 10; ++i )
a2[ i ] = a1[ i ];
vector< int > v2( v1 );
list< int > l2( l1 );

list< int >::iterator p_l2 = l2.begin();
for( int i = 0; i < 10; ++i ){
a2[ i ] += 2;
v2[ i ] += 3;
*p_l2 += 5;
++p_l2;
}

My::copy( a2, a2 + 10, v2.begin() );
My::copy( l2.begin(), l2.end(), a2 );

vector< int >::iterator p_v2_find = find( v2.begin(), v2.end(), 3 );
if( p_v2_find != v2.end() )
cout << p_v2_find - v2.begin() << endl;
else
cout << "not found" << endl;

list< int >::iterator p_l2_find = find( l2.begin(), l2.end(), 27 );
if( p_l2_find != l2.end() ){ //这个地方,感觉我写的这段代码很丑陋。
int i = 0;
for( ; p_l2_find != l2.begin(); ++i, --p_l2_find );
cout << i << endl;
}
else
cout << "not found" << endl;

keep_window_open();
return 0;
}
《C++程序设计原理与实践》第20章的简单练习第八题。

题目是:
利用find()来判断列表中是否含有元素27,如果有则输出它的位置。有什么其他的更好的方法么?别用太高级的模板算法,前面基本上没有提到几个模板算法。但是前面好像提到让读者自己去搜索资料了,所以用更高级模板算法可能也不算犯规。

文章评论

如若使用find返回的结果显示要查找的东西在列表中的位置
程序员最害怕的5件事 你中招了吗?
如若使用find返回的结果显示要查找的东西在列表中的位置
漫画:程序员的工作
如若使用find返回的结果显示要查找的东西在列表中的位置
每天工作4小时的程序员
如若使用find返回的结果显示要查找的东西在列表中的位置
总结2014中国互联网十大段子
如若使用find返回的结果显示要查找的东西在列表中的位置
程序员的样子
如若使用find返回的结果显示要查找的东西在列表中的位置
中美印日四国程序员比较
如若使用find返回的结果显示要查找的东西在列表中的位置
写给自己也写给你 自己到底该何去何从
如若使用find返回的结果显示要查找的东西在列表中的位置
程序员的一天:一寸光阴一寸金
如若使用find返回的结果显示要查找的东西在列表中的位置
Web开发人员为什么越来越懒了?
如若使用find返回的结果显示要查找的东西在列表中的位置
Web开发者需具备的8个好习惯
如若使用find返回的结果显示要查找的东西在列表中的位置
团队中“技术大拿”并非越多越好
如若使用find返回的结果显示要查找的东西在列表中的位置
10个调试和排错的小建议
如若使用find返回的结果显示要查找的东西在列表中的位置
旅行,写作,编程
如若使用find返回的结果显示要查找的东西在列表中的位置
“懒”出效率是程序员的美德
如若使用find返回的结果显示要查找的东西在列表中的位置
Java 与 .NET 的平台发展之争
如若使用find返回的结果显示要查找的东西在列表中的位置
程序员周末都喜欢做什么?
如若使用find返回的结果显示要查找的东西在列表中的位置
那些争议最大的编程观点
如若使用find返回的结果显示要查找的东西在列表中的位置
代码女神横空出世
如若使用find返回的结果显示要查找的东西在列表中的位置
做程序猿的老婆应该注意的一些事情
如若使用find返回的结果显示要查找的东西在列表中的位置
程序员都该阅读的书
如若使用find返回的结果显示要查找的东西在列表中的位置
我跳槽是因为他们的显示器更大
如若使用find返回的结果显示要查找的东西在列表中的位置
科技史上最臭名昭著的13大罪犯
如若使用find返回的结果显示要查找的东西在列表中的位置
十大编程算法助程序员走上高手之路
如若使用find返回的结果显示要查找的东西在列表中的位置
老美怎么看待阿里赴美上市
如若使用find返回的结果显示要查找的东西在列表中的位置
初级 vs 高级开发者 哪个性价比更高?
如若使用find返回的结果显示要查找的东西在列表中的位置
我是如何打败拖延症的
如若使用find返回的结果显示要查找的东西在列表中的位置
程序员眼里IE浏览器是什么样的
如若使用find返回的结果显示要查找的东西在列表中的位置
聊聊HTTPS和SSL/TLS协议
如若使用find返回的结果显示要查找的东西在列表中的位置
不懂技术不要对懂技术的人说这很容易实现
如若使用find返回的结果显示要查找的东西在列表中的位置
什么才是优秀的用户界面设计
如若使用find返回的结果显示要查找的东西在列表中的位置
当下全球最炙手可热的八位少年创业者
如若使用find返回的结果显示要查找的东西在列表中的位置
编程语言是女人
如若使用find返回的结果显示要查找的东西在列表中的位置
Java程序员必看电影
如若使用find返回的结果显示要查找的东西在列表中的位置
我的丈夫是个程序员
如若使用find返回的结果显示要查找的东西在列表中的位置
如何成为一名黑客
如若使用find返回的结果显示要查找的东西在列表中的位置
程序员必看的十大电影
如若使用find返回的结果显示要查找的东西在列表中的位置
“肮脏的”IT工作排行榜
如若使用find返回的结果显示要查找的东西在列表中的位置
10个帮程序员减压放松的网站
如若使用find返回的结果显示要查找的东西在列表中的位置
程序员的鄙视链
如若使用find返回的结果显示要查找的东西在列表中的位置
看13位CEO、创始人和高管如何提高工作效率
如若使用find返回的结果显示要查找的东西在列表中的位置
亲爱的项目经理,我恨你
如若使用find返回的结果显示要查找的东西在列表中的位置
60个开发者不容错过的免费资源库
如若使用find返回的结果显示要查找的东西在列表中的位置
老程序员的下场
如若使用find返回的结果显示要查找的东西在列表中的位置
为啥Android手机总会越用越慢?
如若使用find返回的结果显示要查找的东西在列表中的位置
5款最佳正则表达式编辑调试器