第四十五篇,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方法可能会抛出整型异常或者浮点型异常


 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

肖爱Kun

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

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

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

打赏作者

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

抵扣说明:

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

余额充值