zoukankan      html  css  js  c++  java
  • unique & lower_bound C++

    原来C++也有unique和lower_bound,只需头文件iostream

    • unique

    unique可以对数组进行相邻元素的“去重”,实现效果是把所有不重复的元素按顺序放在数组前面,剩余元素留在末尾。函数返回的是指针,表示最后一个唯一元素的位置的下一个地址值

    假设a为大小为n的数组,且已经排好序,那么m=unique(a,a+n)-a,则m就是a中unique元素的个数,且a[:m]是已经去重后的数组,看一下例子就明白了:

    int a[7] = {1,1,2,2,3,4,6};
    cout<<unique(a,a+7)-a<<endl;
    //5
    for(int i=0;i<7;i++)
        cout<<a[i]<<" ";
    //1 2 3 4 6 4 6
    • lower_bound

    lower_bound(a,a+n,target)返回指向a[:n]中第一个≥target的元素的指针,用法如下:

    int a[7] = {1,1,2,2,3,4,6};
    cout<<lower_bound(a,a+7,5)<<endl;
    //0xbffe70
    cout<<lower_bound(a,a+7,5)-a<<endl;
    //6
    cout<<lower_bound(a,a+7,2)-a<<endl;
    //2
  • 相关阅读:
    allocator类
    智能指针shared_ptr
    字面值常量类
    转换构造函数
    委托构造函数
    访问说明符&封装
    const成员函数
    函数指针
    constexper和常量表达式
    函数返回数组指针
  • 原文地址:https://www.cnblogs.com/liziran/p/6814758.html
Copyright © 2011-2022 走看看