C++语言基础 例程 范型编程简介

简介: 贺老师的教学链接  本课讲解曾经的查找//曾经的查找:顺序查找#include <iostream>using namespace std;int main( ){ int d[10]={2,7,4,8,12,1,3,5,9,11},i,key,index=-1; cout<<"Input a key you want to search:\

贺老师的教学链接  本课讲解


曾经的查找

//曾经的查找:顺序查找
#include <iostream>
using namespace std;
int main( )
{
    int d[10]={2,7,4,8,12,1,3,5,9,11},i,key,index=-1;
    cout<<"Input a key you want to search:\n";
    cin>>key;
    for(i=0; i<10; i++)
        if(key == d[i])
        {
            index = i;
            break;
        }
    if(index >= 0)
        cout<<"The index of the key is "<<index<<".\n";
    else
        cout<<"Not found.\n";
    return 0;
}

//曾经的查找:有序表中的二分查找
#include <iostream>
using namespace std;
int main()
{
    int d[10] = {1,3,9,12,32,41,45,62,75,77};
    int low, high,mid,key,index=-1;
    cin>>key;
    low=0,high=9;
    while(low<=high)
    {
        mid=(low+high)/2;
        if(d[mid]==key)
        {
            index=mid;
            break;
        }
        else if(d[mid]>key)
            high=mid-1;
        else
            low=mid+1;
    }
    if(index >= 0)
        cout<<"在:"<<index<<".\n";
    else
        cout<<"没有找到.\n";
}

可以这样做
//可以这样做:数组上的find函数
#include <iostream>
#include <algorithm>
using namespace std;
#define SIZE 100
int iarray[SIZE];
int main()
{
    iarray[20] = 50;
    int* ip = find(iarray, iarray + SIZE, 50);
    if (ip == iarray + SIZE)
        cout << "50 not found in array" << endl;
    else
        cout << *ip << " found in array" << endl;
    return 0;
}

//可以这样做:利用向量容器、迭代器、算法
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
vector<int> intVector(100);
int main()
{
    intVector[20] = 50;
    vector<int>::iterator intIter =
        find(intVector.begin(), intVector.end(), 50);
    if (intIter != intVector.end())
        cout << "Vector contains value " << *intIter << endl;
    else
        cout << "Vector does not contain 50" << endl;
    return 0;
}


目录
相关文章
|
1月前
|
存储 C++ UED
【实战指南】4步实现C++插件化编程,轻松实现功能定制与扩展
本文介绍了如何通过四步实现C++插件化编程,实现功能定制与扩展。主要内容包括引言、概述、需求分析、设计方案、详细设计、验证和总结。通过动态加载功能模块,实现软件的高度灵活性和可扩展性,支持快速定制和市场变化响应。具体步骤涉及配置文件构建、模块编译、动态库入口实现和主程序加载。验证部分展示了模块加载成功的日志和配置信息。总结中强调了插件化编程的优势及其在多个方面的应用。
231 64
|
1月前
|
安全 程序员 编译器
【实战经验】17个C++编程常见错误及其解决方案
想必不少程序员都有类似的经历:辛苦敲完项目代码,内心满是对作品品质的自信,然而当静态扫描工具登场时,却揭示出诸多隐藏的警告问题。为了让自己的编程之路更加顺畅,也为了持续精进技艺,我想借此机会汇总分享那些常被我们无意间忽视却又导致警告的编程小细节,以此作为对未来的自我警示和提升。
89 5
|
1月前
|
算法 C++
2022年第十三届蓝桥杯大赛C/C++语言B组省赛题解
2022年第十三届蓝桥杯大赛C/C++语言B组省赛题解
34 5
|
1月前
|
安全 程序员 编译器
【C++篇】继承之韵:解构编程奥义,领略面向对象的至高法则
【C++篇】继承之韵:解构编程奥义,领略面向对象的至高法则
81 11
|
1月前
|
算法 安全 Linux
【C++STL简介】——我与C++的不解之缘(八)
【C++STL简介】——我与C++的不解之缘(八)
|
1月前
|
编译器 C语言 C++
C++入门6——模板(泛型编程、函数模板、类模板)
C++入门6——模板(泛型编程、函数模板、类模板)
41 0
C++入门6——模板(泛型编程、函数模板、类模板)
|
1月前
|
算法 编译器 C++
【C++篇】领略模板编程的进阶之美:参数巧思与编译的智慧
【C++篇】领略模板编程的进阶之美:参数巧思与编译的智慧
77 2
|
1月前
|
存储 编译器 C语言
深入计算机语言之C++:类与对象(上)
深入计算机语言之C++:类与对象(上)
|
1月前
|
存储 分布式计算 编译器
深入计算机语言之C++:C到C++的过度-2
深入计算机语言之C++:C到C++的过度-2
|
1月前
|
编译器 Linux C语言
深入计算机语言之C++:C到C++的过度-1
深入计算机语言之C++:C到C++的过度-1