zoukankan      html  css  js  c++  java
  • C++ std::vector 合并数据,不排序,保持最初的顺序

     场景描述:一个源vector保存一系列属性值,另一个vector是最新的数据,最终源数据中保存着最新且有效的属性值

    #include <iostream>
    #include <vector>
    
    //合并两个vector vt1 是源数据,vt2是新数据,想要的结果是 vt1最后是2,3,4,保持最初插入的顺序
    void test()
    {
        std::vector<int> vt1;
        vt1.push_back(1);
        vt1.push_back(2);
        vt1.push_back(3);
    
        std::vector<int> vt2;
        vt2.push_back(2);
        vt2.push_back(3);
        vt2.push_back(4);
    
        for (size_t i = 0; i < vt2.size();++i)
        {
            bool bfind = false;
            for (size_t j = 0; j < vt1.size();++j)
            {
                if (vt2[i] == vt1[j])
                {
                    bfind = true;
                    break;
                }
            }
    
            if (!bfind)
            {
                vt1.push_back(vt2[i]);
            }
        }
    
        for (std::vector<int>::iterator iter = vt1.begin(); iter != vt1.end();)
        {
            bool bfind = false;
            for (std::vector<int>::iterator iter1 = vt2.begin(); iter1 != vt2.end();++iter1)
            {
                if (*iter == *iter1)
                {
                    bfind = true;
                    break;
                }
            }
    
            if (!bfind)
            {
                iter = vt1.erase(iter);//删除元素,返回值指向已删除元素的下一个位置
            }
            else
                ++iter;
        }
    
    
        for (std::vector<int>::iterator iter = vt1.begin(); iter != vt1.end();iter++)
        {
            std::cout << *iter << std::endl;
        }
    }
    
    int main()
    {
        test();
        getchar();
        return 0;
    }

    运行结果:

  • 相关阅读:
    POJ 3672 水题......
    POJ 3279 枚举?
    STL
    241. Different Ways to Add Parentheses
    282. Expression Add Operators
    169. Majority Element
    Weekly Contest 121
    927. Three Equal Parts
    910. Smallest Range II
    921. Minimum Add to Make Parentheses Valid
  • 原文地址:https://www.cnblogs.com/chechen/p/12116518.html
Copyright © 2011-2022 走看看