• 第四十五篇,STL标准模板库常见算法


    TL里面的常用算法
    ===================================================
       以下这些算法具体通用性(不属于任何一个类):适合数组,所有的容器,字符string
       1.查找 find()
                find(迭代器first,迭代器last,你要找的那个值);
                find_if(迭代器first,迭代器last,函数符);

       2.循环 for_each()
                for_each(迭代器first,迭代器last,函数符)

       3.拷贝 copy()和copy_if()
                copy(迭代器first,迭代器last,迭代器pos)  //把[first,last)范围的数据拷贝到pos位置
                copy(迭代器first,迭代器last,迭代器pos,函数符)
       
       4.删除 remove()和remove_if()
                remove(迭代器first,迭代器last,你要删除的值)
                remove_if(迭代器first,迭代器last,函数符)  

       5.逆序 reverse()
                reverse(迭代器first,迭代器last) 

       6.sort()
                sort(迭代器first,迭代器last)
                sort(迭代器first,迭代器last,函数符)

       7.交换 swap()
                swap(模板参数,模板参数)  //任何类型的数据都可以交换


    异常处理
    ===================================================
       1.C语言异常处理
             通过保存函数的返回值,判断返回值做异常处理
             int fd=open(文件);
             if(fd==-1) //通过返回值判断是否发生了异常(错误)
             {
                 异常处理/错误处理
             }

       2.C++异常处理
           C++可以采用C语言的异常处理的方法,但是C++新增了新的异常处理方法
           语法格式:
               try  
               {
                  你要调用的函数;
               }catch(你要捕捉的异常类型)
               {
                  你捕捉到异常以后需要做的事情(处理异常)
               }
               其他代码
               try语句块:用来测试调用的函数会不会抛出异常
                          如果函数抛出了异常---》catch就会自动捕捉到异常,然后执行catch花括号里面的代码
                          如果函数没有抛出异常(正常执行完毕)---》catch捕捉不到异常,catch花括号里面的代码就不会执行
           抛出异常:C++新增了关键字throw用来抛出各种类型的异常
           捕捉处理异常:C++新增了关键字catch用来捕捉各种类型的异常,然后在catch的花括号里面处理异常
           总结:如果函数使用throw抛出了异常,你必须使用try-catch语句块去捕捉处理异常,不可以再去按照C语言的方式去判断处理异常了
                 函数也可以抛出多种不同类型的异常,对应的catch也要分别处理

       3.throw可以抛出两种类型的异常
            第一种:抛出基本数据类型异常
                      throw -1;  //抛出整型异常
                      throw 2.5; //抛出浮点型异常
                      throw "函数调用失败了"; //抛出字符串异常

            第二种:抛出自定义类型异常
                    自定义的异常:C++中有个exception类(所有异常的祖先)
                                 程序员定义一个子类,继承exception,然后重写exception中的同名虚函数,实现子类自己的方法
                                 #include <exception>
                                 class exception
                                 {
                                      virtual const char* what() const noexcept;

                                 }

       4.异常声明
             异常声明:告诉程序员,我这个函数可能会抛出某种/某几种异常,也有可能不抛出任何异常
                      const char* what() const noexcept;   //noexcept告诉程序员以及编译器,what方法是不会抛出任何异常的
                      int fun(int n)  throw(int)         //告诉程序员以及编译器,fun方法可能会抛出整型异常
                      int fun(int n)  throw(int,double)  //告诉程序员以及编译器,fun方法可能会抛出整型异常或者浮点型异常


     

  • 相关阅读:
    好用的翻译插件-一键自动翻译插件软件
    map & set
    17.应用负载压力测试
    [附源码]java毕业设计校园环境保护监督系统
    2024年腾讯云2核4G5M轻量服务器性能评测,多维度测试
    通讯录的实现(详解)
    C# 编写一个简单易用的 Windows 截屏增强工具
    echarts 柱状堆叠图(图例和x轴都是动态的)
    source /etc/profile 自动生效
    Springboot垃圾分类宣传网站bh46k计算机毕业设计-课程设计-期末作业-毕设程序代做
  • 原文地址:https://blog.csdn.net/weixin_44651073/article/details/125548077