OSDN Git Service

Use std::vector in DiffMap.
authorKimmo Varis <kimmov@gmail.com>
Sat, 24 Jan 2009 00:54:46 +0000 (00:54 +0000)
committerKimmo Varis <kimmov@gmail.com>
Sat, 24 Jan 2009 00:54:46 +0000 (00:54 +0000)
Src/DiffList.h
Src/MergeDocDiffSync.cpp

index 24eb179..d98fd42 100644 (file)
@@ -70,7 +70,7 @@ public:
                GHOST_MAP_ENTRY = 888888888
        };
 
-       std::map<int, int> m_map;
+       std::vector<int> m_map;
 
        // boilerplate ctr, copy ctr
        DiffMap() { }
@@ -81,10 +81,14 @@ public:
         */
        void InitDiffMap(int nlines)
        {
-               for (int i = 0; i < nlines; ++i)
+               m_map.reserve(nlines);
+
+               // sentry value so we can check later that we set them all
+               std::vector<int>::iterator iter = m_map.begin();
+               while (iter != m_map.end())
                {
-                       // sentry value so we can check later that we set them all
-                       m_map[i] = BAD_MAP_ENTRY;
+                       *iter = BAD_MAP_ENTRY;
+                       iter++;
                }
        }
 };
index 0f9f13d..09488d3 100644 (file)
@@ -51,13 +51,16 @@ void CMergeDoc::AdjustDiffBlocks()
                        AdjustDiffBlock(diffmap, diffrange, lo0, hi0, lo1, hi1);
 
 #ifdef _DEBUG
-                       int i;
-                       for (i = 0; i < diffmap.m_map.size(); i++)
+                       std::vector<int>::const_iterator iter = diffmap.m_map.begin();
+                       int i = 0;
+                       while (iter != diffmap.m_map.end())
                        {
                                TCHAR buf[256];
                                wsprintf(buf, _T("begin0=%d begin1=%d diffmap[%d]=%d\n"),
-                                               diffrange.begin0, diffrange.begin1, i, diffmap.m_map[i]);
+                                               diffrange.begin0, diffrange.begin1, i, iter);
                                OutputDebugString(buf);
+                               iter++;
+                               i++;
                        }
 #endif