C/C++ STL MAP用来处理文件中重复的相同的一行数据的问题

  • Post author:
  • Post category:其他


#include <afx.h>
#include <map>
#include <shlwapi.h>
#include <string>
int wmain(int argc, wchar_t *argv[ ], wchar_t *envp[ ])
{
	std::map<CString,int>singel_map;

	CStdioFile File;
	File.Open(argv[1],CFile::modeReadWrite);
	wchar_t Mask[4];
	CString ReadLine;
	File.Read(Mask,2);
	File.ReadString(ReadLine);
	while (ReadLine.GetLength())
	{
		++singel_map[ReadLine];
		File.ReadString(ReadLine);
	}
	std::map<CString,int>::iterator it=singel_map.begin();
	while(it!=singel_map.end())
	{
		ReadLine=it->first;
		File.Write(ReadLine.GetBuffer(0),it->first.GetLength()*2);
		File.Write(_T("\r\n"),4);
		it++;
	}
	File.Close();
	return 1;
}


Map在处理类似字典问题实在是太好用了,不过在使用过程中发现一个问题

it->first.GetBuffer(0)连续使用会出错,不知道什么原因,但是单独分开使用就没有问题。

对于 map 容器,如果下标所表示的键在容器中不存在,则



版权声明:本文为wyyzsl212328原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。