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

本文介绍了C++ STL中的map容器在处理文件中重复数据时的使用,强调了在使用map::insert时的注意事项,以及如何避免键值对插入时的错误。通过示例代码展示了如何利用insert函数插入元素,并通过返回值检测是否成功插入,从而更新元素的值。
摘要由CSDN通过智能技术生成
#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 容器,如果下标所表示的键在容器中不存在,则
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值