Я новичок в С++. Мне было интересно, как я могу найти повторяющиеся строки в векторе и распечатать ОДНУ копию строки. Например, если бы у меня было ‹"кошка", "собака", "собака", "птица">, это напечатало бы кошку, собаку, птицу. Я отсортировал свой вектор и использую функцию смежных_находок и перебираю вектор (поскольку мне нужно найти, дублируется ли какое-либо слово). Мой код обнаруживает дубликаты, но печатает только не дубликаты. Я хотел бы изменить его, чтобы распечатать все не дубликаты, а также только ОДИН из дубликатов, чтобы распечатать все строки в векторе. Вот код, который у меня есть до сих пор:
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
}
std::unique_copy
, чтобы скопировать их для вывода. - person chris   schedule 28.01.2013std::set<>
- person WhozCraig   schedule 28.01.2013