C++ 如何从向量中删除唯一值并保留重复项
各位 我试图从向量中删除所有唯一的值。下面是我的程序输出的向量。我想保留在向量中的字符串在灰色框中C++ 如何从向量中删除唯一值并保留重复项,c++,vector,C++,Vector,各位 我试图从向量中删除所有唯一的值。下面是我的程序输出的向量。我想保留在向量中的字符串在灰色框中 ART-105-1129 Spring 2004 FILM-298-1129 Spring 2004 GEOG-298-1370 Spring 2004 MUSLT-110-1370 Spring 2004 BCA-298-1617 Spring 2004 HIST-120-1617 Spring 2004 通信-120-5008 2016年夏季 蒽-140-5306 2016年秋季
ART-105-1129 Spring 2004
FILM-298-1129 Spring 2004
GEOG-298-1370 Spring 2004
MUSLT-110-1370 Spring 2004
BCA-298-1617 Spring 2004
HIST-120-1617 Spring 2004
通信-120-5008 2016年夏季
蒽-140-5306 2016年秋季
英语-122-5355 2016年秋季
我要保留的代码在第二个“-”之后有匹配的字符串
我用于上述输出的代码是
set<string> s(listOfCourses.begin(), listOfCourses.end());
listOfCourses.assign(s.begin(), s.end());
set<string> dupremove(duplicateTermsAndSections.begin(), duplicateTermsAndSections.end());
duplicateTermsAndSections.assign(dupremove.begin(), dupremove.end());
for (vector<string>::iterator itouter = duplicateTermsAndSections.begin(); itouter!= duplicateTermsAndSections.end(); itouter++) !copyDuplicateTermsAndSections.empty(); copyDuplicateTermsAndSections.pop())
{
for (vector<string>::iterator it = listOfCourses.begin(); it != listOfCourses.end(); it++)
{
if ((*it).find(*itouter) != string::npos)
cout << *it << endl;
}
cout << endl;
}
set s(listOfCourses.begin(),listOfCourses.end());
assign(s.begin(),s.end());
设置dupremove(duplicateTermsAndSections.begin(),duplicateTermsAndSections.end());
duplicateTermsAndSections.assign(dupremove.begin(),dupremove.end());
对于(vector::iterator itouter=duplicateTermsAndSections.begin();itouter!=duplicateTermsAndSections.end();itouter++)!copyDuplicateTermsAndSections.empty();copyDuplicateTermsAndSections.pop())
{
for(vector::iterator it=listOfCourses.begin();it!=listOfCourses.end();it++)
{
if((*it).find(*itouter)!=string::npos)
cout如果你计算一个频率映射,其中键是你在第二个“-”和下面的空格之间提取的子字符串。当你迭代你的字符串集合时,查看映射。如果键还没有在映射中,则在映射中为该键设置一个值1。如果键在映射中,则增加存储在映射中的值对应于地图
然后,对字符串集合进行第二次遍历,如果提取的子字符串在映射中的对应值为1,则它是唯一的,否则它是重复的
<>我将把它作为练习来为上述算法编写C++特定语法。你能解释“匹配项”是什么意思吗?“保持重复”是什么意思?与“匹配项”有关的重复是什么??std::unique
是一个很好的外观at@Galik谢谢你的回复。我更新了原来的帖子。@macroland我已经研究过了。据我所知,它“保持”所有的重复项。我已经删除了所有重复的字符串。我只剩下一个重复项。这正是我想要消除的。剩下的重复项(唯一值)。好的,我想我理解了,但我不太确定。当你说“频率映射”时,你是指像map var;@asmqmap var;