私はC++が初めてです。ベクター内の重複する文字列を見つけて、文字列の 1 つのコピーを出力する方法を知りたいと思っていました。たとえば、<"cat", "dog", "dog", "bird",> がある場合、cat、dog、bird が出力されます。ベクトルをソートし、adidas_find 関数を使用してベクトルを反復処理しています (単語が重複しているかどうかを確認する必要があるため)。私のコードは重複を検出しますが、重複していないものだけを出力します。重複していないすべての文字列と重複する文字列の 1 つだけを出力するように変更したいので、ベクトル内のすべての文字列が出力されます。これが私がこれまでに持っているコードです:
public: void print(vector<string> in) // print method for printing a vector and it's key
{
sort(in.begin(), in.end()); // sort the vector alphabetically first
vector<string>::iterator it;
for( it = in.begin(); it != in.end(); it++ ) // iterate through it
if(adjacent_find(in.begin(), in.end()) == in.end()) // don't print duplicates
cout << *it<<endl; // and print out each string in the vector
}