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;
    }

    运行结果:

  • 相关阅读:
    变量 常量 Python变量内存管理 赋值方式 注释
    leetcode 两数之和 整数反转 回文数 罗马数字转整数
    计算机基础之编程
    列表,集合,元组,字典
    小练习
    Ansi 与 Unicode 字符串类型的互相转换
    UVALive
    UVA
    UVA 10651 Pebble Solitaire 状态压缩dp
    UVA 825 Walkiing on the safe side
  • 原文地址:https://www.cnblogs.com/chechen/p/12116518.html
Copyright © 2011-2022 走看看