一个简单的查找替换算法

Posted pengwang52

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个简单的查找替换算法相关的知识,希望对你有一定的参考价值。

#include<iostream>
#include<vector>

using namespace std;


bool _insert_single_video(
            std::vector<int>* all_tmp_res,
            const int insert_pos,
            int single_video) {
    
    int cur_pos = 0;
    auto it = all_tmp_res->begin();
    auto it_last_pos = it;
    int insert_success = 0;
    while (it != all_tmp_res->end()) {
        if (cur_pos == insert_pos) {

            cout << "test--------1:"<< cur_pos << endl;

            it = all_tmp_res->insert(it, single_video);
            it_last_pos = it;
            ++it;
            ++cur_pos;
            insert_success += 1;
            continue;
        }
        if (*it == single_video) {
            
            cout << "test--------2:"<< *it<< endl;
            
            it = all_tmp_res->erase(it);
            it_last_pos = it;
            insert_success += 2;
            break;
        }
        else {
            cout << "test--------3:"<< *it<< endl;
            ++it;
            ++cur_pos;
        }
    }
    if (insert_success != 3) {
        cout << "test--------4:"<< insert_success<< endl;
        
        if (insert_success == 1) {
        
            cout << "test--------5:"<< insert_success <<":" << *it_last_pos<< endl;
            //Undo insert-
            all_tmp_res->erase(it_last_pos);
        }
        if (insert_success == 2) {
            //Undo erase
            cout << "test--------6:"<< insert_success <<":" << *it_last_pos<< endl;
            all_tmp_res->insert(it_last_pos, single_video);
        }
        return false;
    }
    return true;
}


int main() {
    
    vector<int> v;
    int a[11] = {0, 1, 9, 3, 4, 5, 6, 7, 8, 9, 10};
    v.insert(v.begin(), a, a+11);
    
    _insert_single_video(&v, 7, 9);

    for (auto it = v.begin(); it != v.end(); it++) {
        cout << *it <<endl;
    }
    return 0;
}

 

以上是关于一个简单的查找替换算法的主要内容,如果未能解决你的问题,请参考以下文章

从搜索文档中查找最小片段的算法?

STL查找排序替换集合算法

二叉查找树简单实现

替换片段的高程值错误

如何在android studio中用另一个片段替换一个片段

替换从 VAST 代码返回的多个 HLS VOD 片段