Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Polish
  4. Pomocy! Dziwne zachowanie metody QString.removeAt() (według mnie)
Forum Updated to NodeBB v4.3 + New Features

Pomocy! Dziwne zachowanie metody QString.removeAt() (według mnie)

Scheduled Pinned Locked Moved Unsolved Polish
1 Posts 1 Posters 17 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • K Offline
    K Offline
    karlowic
    wrote last edited by
    #1

    Witam
    Funkcja otrzymuje listę wyrazów do obróbki. Ma sprawdzić czy w wyrazach listy występuje litera char1 . Jeśli wystąpi to usuwa dany wyraz z listy za pomocą metody QString.removeAt(). Nie wiem dlaczego gdy włączona jest metoda funkcja nie usuwa wszystkich wyrazów z literą a. Proszę o pomoc w wyjaśnieniu dlaczego tak się dzieje.

    QList<QString> MainWindow::searchWord(QList<QString> lista)
    {
        QString char1 = ui->lineEdit_6->text();
    
        for( int n = 0; n < lista.size(); n++)
        {
            for (int i = 0; i < lista[i].size(); i++)
            {
                if(char1 == lista[n][i])
                {
                    qDebug() << lista[n];
                    lista.removeAt(n);
                }
            }
        }
    qDebug() << lista;
    return lista;
    }
    

    Tak wygląda wynik działania z metodą removeAt():
    "polać"
    "polał"
    "polań"
    "polia"
    "polja"
    "polka"
    "polna"
    QList("polak", "polan", "polar", "polce", "polec", "poleć", "polej", "polek", "polem", "poleń", "polep", "poler", "polew", "poleź", "poleż", "polik", "polio", "polip", "polis", "poliu", "poliż", "polje", "polji", "polju", "polką", "polkę", "polki", "polko", "polną", "polne", "polni", "polny", "polom", "polon", "polor", "polot", "polub", "poluj")
    Funkcja pomija polak, polan, polar.

    Bez metody QString.removeAt():

    QList<QString> MainWindow::searchWord(QList<QString> lista)
    {
        QString char1 = ui->lineEdit_6->text();
    
        for( int n = 0; n < lista.size(); n++)
        {
            for (int i = 0; i < lista[i].size(); i++)
            {
                if(char1 == lista[n][i])
                {
                    qDebug() << lista[n];
                    //lista.removeAt(n);
                }
            }
        }
    qDebug() << lista;
    return lista;
    }
    

    "polać"
    "polak"
    "polał"
    "polan"
    "polań"
    "polar"
    "polia"
    "polja"
    "polka"
    "polna"
    QList("polać", "polak", "polał", "polan", "polań", "polar", "polce", "polec", "poleć", "polej", "polek", "polem", "poleń", "polep", "poler", "polew", "poleź", "poleż", "polia", "polik", "polio", "polip", "polis", "poliu", "poliż", "polja", "polje", "polji", "polju", "polka", "polką", "polkę", "polki", "polko", "polna", "polną", "polne", "polni", "polny", "polom", "polon", "polor", "polot", "polub", "poluj")

    1 Reply Last reply
    0

    • Login

    • Login or register to search.
    • First post
      Last post
    0
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Get Qt Extensions
    • Unsolved