欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C++ 学习记录

程序员文章站 2022-07-09 21:46:43
...

Generic Algorithm

泛型算法存在的意义在于,在 cpp 中我们可以直接使用cpp自带的数据结构而不是重新去创建自己的结构,而cpp根据它自带的结构设计好了算法可以直接使用,减小了程序编写的难度,是个非常好的工具。

需要注意的几点

  • 泛型算法只操作iterator而不是container,所以不会改变container的大小

算法有很多但是结构只有5种:

  • alg(beg, end, other args);
    这一种最典型的就是find(v.begin(), v.end(), value )find( )返回的是一个iterator,通过比较返回值和container的尾即.end( ),如果没找到这两个就相等。如果找到了就返回指向第一个出现这个值的iterator。同样也可以对数据进行查找,返回的是pointer。

    // sum the elements in vec starting the summation with the value 0
    int sum = accumulate(vec.cbegin(), vec.cend(), 0);
    

    accumulate( )也是这种类型的算法,它的第三个输入决定了它的返回类型和相加的初始值。

  • alg(beg, end, dest, other args);

  • alg(beg, end, beg2, other args);
    这种是输入一个sequence的开始和结束,然后输入第二个sequence的开始,这种形式会假设第二个sequence至少和第一个sequence一样长

    // roster2 should have at least as many elements as roster1
    equal(roster1.cbegin(), roster1.cend(), roster2.cbegin(),pred);
    

    这个equal( )返回的返回值是boolean类型,比较两个sequence是不是相等,默认用==,可以用pred来判断。

  • alg(beg, end, beg2, end2, other args);

上一篇: const的应用

下一篇: c++学习记录