C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C ++を使用したSTL関数を使用して、std::vector内の重複する単語を検索して印刷します。


文字列のリストがあると考えてください。リストに重複する文字列がいくつかあります。どの文字列が複数回発生しているかを確認する必要があります。文字列リストが[“ Hello”、“ Kite”、“ Hello”、“ C ++”、“ Tom”、“ C ++”]

のようなものであるとします。

ここではハッシュ手法を使用するため、空のハッシュテーブルを作成し、各文字列をトラバースします。各文字列について、sはすでにハッシュに存在し、文字列を表示します。それ以外の場合は、ハッシュに挿入します。

#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);
}

出力

Hello
C++

  1. C++を使用して文字列の部分文字列の数を見つける

    この記事では、特定の文字列に形成できるサブ文字列(空ではない)の数を見つけるためのアプローチについて学習します。 Input : string = “moon” Output : 10 Explanation: Substrings are ‘m’, ‘o’, ‘o’, ‘n’, ‘mo’, ‘oo’, ‘on’, ‘moo’, ‘oon’ and &

  2. C++STLのvector::begin()およびvector ::end()

    vector ::begin()関数は、コンテナの最初の要素を指すイテレータを返すために使用される双方向イテレータです。 vector ::end()関数は、コンテナの最後の要素を指すイテレータを返すために使用される双方向イテレータです。 アルゴリズム Begin    Initialize the vector v.    Declare the vector v1 and iterator it to the vector.    Insert the elements of the vector.    P