Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Tìm và in từ trùng lặp trong std::vector dùng STL bằng C++


Xét chúng ta có một danh sách các chuỗi. Danh sách có một số chuỗi trùng lặp. Chúng ta phải kiểm tra xem chuỗi nào xuất hiện nhiều hơn một lần. Giả sử danh sách chuỗi như ["Hello", "Kite", "Hello", "C++", "Tom", "C++"].

Ở đây chúng ta sẽ sử dụng kỹ thuật hashing, vì vậy tạo một bảng băm rỗng, sau đó duyệt từng chuỗi, và với mỗi chuỗi, nếu s đã có trong bảng băm, thì hiển thị chuỗi đó, ngược lại chèn vào bảng băm.

Ví dụ

#include<iostream> #include<vector> #include<unordered_set> using namespace std; void displayDupliateStrings(vector<string> strings) {    unordered_set<string> s;    bool hasDuplicate = false;    for (int i = 0; i<strings.size(); i++) {       if (s.find(strings[i]) != s.end()) {          cout << strings[i] << endl;          hasDuplicate = true;       }       else          s.insert(strings[i]);    }    if (!hasDuplicate)       cout << "No Duplicate string has found" << endl; } int main() {    vector<string>strings{"Hello", "Kite", "Hello", "C++", "Tom", "C++"};    displayDupliateStrings(strings); }

Kết quả

Hello C++