@Flysink

C++ удаления дубликатов, почему не работает?

Помогите понять почему в visual studio работает , а в qt нет
Я учусь не кидайте какашки

void Wid::test() {
vector<string> stp;
    stp.push_back(text->toPlainText().toStdString());
    sort(stp.begin(),stp.end());
    stp.erase(unique(stp.begin(),stp.end()),stp.end());
    ofstream filesave(pp);
    copy(stp.begin(),stp.end(), ostream_iterator<string>(filesave,"\n"));
}

Вводится текст и после нажатие кнопки собственно вызиваеться через connect() функция test() которая должна удалять дубликаты в QPlainTextEdit и записывать в файл
  • Вопрос задан
  • 542 просмотра
Пригласить эксперта
Ответы на вопрос 2
@Mercury13
Программист на «си с крестами» и не только
void Wid::test() {
    vector<string> stp;
    stp.push_back(text->toPlainText().toStdString());
    // В stp одна штука
    sort(stp.begin(),stp.end());
    // Ну что ей будет, этой штуке?
    stp.erase(unique(stp.begin(),stp.end()),stp.end());
    // unique даст end; поведение vector при этом не определено.
    ofstream filesave(pp);
    copy(stp.begin(),stp.end(), ostream_iterator<string>(filesave,"\n"));
}
Ответ написан
@MiiNiPaa
Как правильно заметил Mercury13 , у вас в векторе один элемент — всё содержимое QPlainTextEdit вместе с переносами строки и т.п.

Чтобы работало, как вам хочется, нужно взять это содержимое, разбить его на строки, запихнуть в вектор и потом работать с этим.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы