C++ //练习 16.4 编写行为类似标准库find算法的模板。函数需要两个模板类型参数,一个表示函数的迭代器参数,另一个表示值的类型。使用你的函数在一个vector<int>和一个

C++ Primer(第5版) 练习 16.4

练习 16.4 编写行为类似标准库find算法的模板。函数需要两个模板类型参数,一个表示函数的迭代器参数,另一个表示值的类型。使用你的函数在一个vector<int>和一个list<string>中查找给定值。

环境:Linux Ubuntu(云服务器)
工具:vim

 

解释
/*************************************************************************
	> File Name: ex16.4.cpp
	> Author: 
	> Mail: 
	> Created Time: Tue 30 Jul 2024 08:30:42 AM CST
 ************************************************************************/

#include<iostream>
#include<string>
#include<vector>
#include<list>
using namespace std;

template <typename I, typename T>
I find(I b, I e, const T &v){
    for(; b != e && *b != v; b++);
    return b;
}

int main(){
    vector<int> num = {1, 2, 3};
    list<string> str = {"zoo", "cat", "dog"};
    
    auto iter1 = find(num.begin(), num.end(), 2);
    if(iter1 == num.end()){
        cout<<"No match!"<<endl;
    }
    else{
        cout<<"Positon: "<<iter1 - num.begin()<<endl;
    }

    auto iter2 = find(str.begin(), str.end(), "fish");
    if(iter2 == str.end()){
        cout<<"No match!"<<endl;
    }
    else{
        cout<<"Found!"<<endl;
    }

    return 0;
}
运行结果显示如下

在这里插入图片描述

  • 9
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Navigator_Z

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值