C++算法equal() 和 equal_range()

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

算法

返回值

作用

equal()

bool

比較兩個容器數值是否相等

equal_range()

pair<_FwdIt, _FwdIt>

找出搜尋值最佳插入位置

equal()的參數

_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2

equal_range()的參數

_FwdIt _First, _FwdIt _Last,const _Ty& _Val

//創建容器

vector<int> createStaticArr()

{

    vector<int> vectorInt;

    vectorInt.push_back(1);   vectorInt.push_back(2);

    vectorInt.push_back(3);   vectorInt.push_back(4);

    vectorInt.push_back(5);   vectorInt.push_back(6);

    vectorInt.push_back(7);   vectorInt.push_back(8);

    showArr(vectorInt);

    return vectorInt;

}

 

vector<int> createStaticArrTwo()

{

    vector<int> vectorInt;

    vectorInt.push_back(1);   vectorInt.push_back(2);

    vectorInt.push_back(3);   vectorInt.push_back(4);

    vectorInt.push_back(5);   vectorInt.push_back(9);

    vectorInt.push_back(8);   vectorInt.push_back(7);

    showArr(vectorInt);   return vectorInt;

}

//輸出數組

void showArr(vector<int> Arr)

{

    vector<int>::iterator iteArr = Arr.begin();

    for (iteArr ; iteArr != Arr.end(); iteArr++)

    {

         cout << *iteArr << "\t";

    }

    cout << endl;

}

 

//比較

bool my_equal(vector<int> left, vector<int> right)

{

    return equal(left.begin(), left.end(), right.begin(), right.end());

}

 

void main()

{

    cout << "第一條:"; vector<int> arr1 = createStaticArr();

    cout << "第二條:"; vector<int> arr2 = createStaticArr();

    //使用equal()方法進行比較

    bool my_bool = my_equal(arr1, arr2);

    if (my_bool)

    {

         cout << "一致" << endl;

    }

    else

    {

         cout << "不一致" << endl;

    }

 

    vector<int> arr3 = createStaticArrTwo();

    //排序

    sort(arr3.begin(), arr3.end());

    cout << "第三條:"; showArr(arr3);

    //使用equal_range()方法

    pair<vector<int>::iterator, vector<int>::iterator> my_range = equal_range(arr3.begin(), arr3.end(), 3);

    cout << *my_range.first << endl;

    cout << *my_range.second << endl;

}//輸出結果:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章