如何从矢量中删除唯一值并保留重复项
everyone。如何从矢量中删除唯一值并保留重复项
我想从矢量中删除所有的唯一值。下面是我的矢量程序输出。我想保留在向量中的字符串位于灰色框中。
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
COMM-120-5008夏季2016
ANTHR-140-5306秋季2016
ENGL-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;
}
我想删除没有匹配项的字符串。匹配的术语就像下面的2个字符串。他们都有一个匹配的“-1129春季2004”。
ART-105-1129 2004年春季
电影298-1129 2004年春季
下面是2个不匹配方面他们没有相同的字符串(如上)
ANTHR-140- 5306秋季2016
ENGL-122-5355秋季2016
如果计算频率图,其中键是你的子你之间提取第二' - '和下面的空间。在遍历字符串集合时,查看地图。如果密钥尚未在地图中,请在地图上为该密钥输入值1。如果键位于地图中,则增加存储在地图中与地图对应的值。
然后,如果提取的子字符串在映射中具有相应的值1,则它是唯一的,否则它是重复的,则进行第二次通过字符串集合的传递。
我将把它作为练习,让您为上述算法使用C++特定的语法。
好吧,我想我明白了,但我不太确定。当你说“频率图”时,你的意思是像地图
@asmcriminal相反'地图
你能解释一下“匹配的术语”是什么和你的意思是“保持重复”?重复项与“匹配项”有什么关系? – Galik
'std :: unique'是个不错的选择 – macroland
@Galik谢谢你的回复。我更新了原始帖子。 – asmcriminal