C++ 不同名称的字符串数组归类

问题描述:

   现有一个数组,数组存放着构件名称:ZC-1,ZC-2,ZC-2,ZC-2,ZC-3,ZC-1,ZC-2,ZC-3,ZC-3,ZC-3,

将这些构件名称按照名称分组。如ZC-1放到一个数组里。

代码实现:

//按几何条件归类,相同名称的构件即为几何条件相同,如ZC-1为一类
void ClassificationStrutByName(const CString& vecStrutRebarData,std::vector& vecClassficationStrut) const
{
	std::map mapTypeIndex;
	for (unsigned int  nIndex = 0; nIndex < vecStrutRebarData.size() ; nIndex++)
	{
		const CString& strStrutName = vecStrutRebarData[nIndex];

		int nTypeIndex = 0;
		auto it = mapTypeIndex.find(strStrutName);
		if (it == mapTypeIndex.end())
		{
			std::vector vecStrut;
			vecClassficationStrut.push_back(vecStrut);
			nTypeIndex = vecClassficationStrut.size() - 1;
			mapTypeIndex.insert(std::make_pair(strStrutName, nTypeIndex));
		}
		else
		{
			nTypeIndex = it->second;
		}

		vecClassficationStrut[nTypeIndex].push_back(data);
	}
}

 

你可能感兴趣的:(C++)