본문 바로가기

BackEnd/C++

두 List의 값을 비교하여 추가, 삭제된 부분 찾기

회사 NMS구현 중 DB에서 받은 값과 이전 DB값의 비교를 하는 부분

구 <- 최신 : 추가되는 부분 감지

최신 <- 구 : 제거되는 부분 감지

==================================================================

 

#include "stdafx.h"

#include <algorithm>

#include <iostream>

 

using namespace std;

 

struct Message

{

    char Name[30];

    int b;

};

 

void _tmain(int argc, _TCHAR* argv[])

{

    list<Message> nMessage;

    list<Message> rMessage;

    list<Message>::iterator it, it2;

    Message M = {};

 

        

    strcpy_s(M.Name, 30, "Name1");

    M.b = 10;

    nMessage.push_back(M);

    rMessage.push_back(M);

 

    strcpy_s(M.Name, 30, "Name2");

    M.b = 10;

    nMessage.push_back(M);

    rMessage.push_back(M);

 

    strcpy_s(M.Name, 30, "Name3");

    M.b = 10;

    nMessage.push_back(M);

    rMessage.push_back(M);

 

    strcpy_s(M.Name, 30, "Name4");

    M.b = 10;

    nMessage.push_back(M);

    rMessage.push_back(M);

 

    strcpy_s(M.Name, 30, "Name5");

    M.b = 10;

    rMessage.push_back(M);

 

    for(it = rMessage.begin(); it != rMessage.end(); it++)

    {

        it2 = nMessage.begin();

        while(true)

        {

            if (it2 == nMessage.end())

            {

                cout << (*it).Name << endl;    

                break;

            }

 

            if (!strcmp((*it).Name, (*it2).Name))

            {

                break;

            }            

 

            it2++;    

        }

    }

}