2016-12-01 101 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;' –

相關問題