2016-12-01 107 views
-1

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

+0

你能解释一下“匹配的术语”是什么和你的意思是“保持重复”?重复项与“匹配项”有什么关系? – Galik

+0

'std :: unique'是个不错的选择 – macroland

+0

@Galik谢谢你的回复。我更新了原始帖子。 – asmcriminal

回答

0

如果计算频率图,其中键是你的子你之间提取第二' - '和下面的空间。在遍历字符串集合时,查看地图。如果密钥尚未在地图中,请在地图上为该密钥输入值1。如果键位于地图中,则增加存储在地图中与地图对应的值。

然后,如果提取的子字符串在映射中具有相应的值1,则它是唯一的,否则它是重复的,则进行第二次通过字符串集合的传递。

我将把它作为练习,让您为上述算法使用C++特定的语法。

+0

好吧,我想我明白了,但我不太确定。当你说“频率图”时,你的意思是像地图 var; – asmcriminal

+0

@asmcriminal相反'地图 var;' –

相关问题