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

    @Flysink Автор вопроса
    MiiNiPaa: конечно, если сможете подправить буду очень благодарен, часть кода
    #include "port.h"
    #include "ui_port.h"
    #include <QString>
    #include <string>
    #include <vector>
    #include <fstream>
    #include <iostream>
    
    using namespace std;
        const char *pp = ".//text2.txt";
    
    Port::Port(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::Port)
    {
        ui->setupUi(this);
    
        but = new QPushButton;
        but->resize(200,50);
        but->setText("Click");
        text = new QPlainTextEdit;
        text->resize(640,480);
        text->show();
        but->show();
    
        connect(but,SIGNAL(clicked()),this,SLOT(clearp()));
    
    }
    
    Port::~Port()
    {
        delete ui;
    }
    
    void Port::clearp() {
    
        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"));
       }


    Файл создаю в директории где хранится сам проект, можно автом. создавать либо указать другой путь не важно, через окно qplaintextedit я ввожу текст, содержания которого примерно
    111
    111
    222
    222
    333
    444

    На выходе в файле text2.txt я должен получить

    111
    222
    333
    444
    но как вы успели заметить выходит не так как было задумано
  • C++ удаления дубликатов, почему не работает?

    @Flysink Автор вопроса
    Антон Жилин: файл создается и записывается все что ввел без удаления дублей, если попробовать удалить весь вектор, все работает в файл ничего не поступает stp.erase(stp.begin(),stp.end()); а в от с unique не ясно почему так