Increasing QList<QStringList> contents twice!



  • In my Qt C++ application I have a QList<QstringList> I want to increase the contents of its 0th index by the same amount!

    void MainWindow::on_pushButton_clicked()
    {
    
        list1<<"a"<<"b"<<"c"<<"d"<<"e";
    
        List1<<list1;
    
        for(int i=0;i<2;i++){
            for(int j=0;j<1;j++){
                List1[j]<<List1[j];
            }
        }
    }
    

    from the above code I want to make the contents of 0th index of List (i.e List[0]) a QStringList of "a" "b" "c" "d" "e" "a" "b" "c" "d" "e" but now it is "a" "b" "c" "d" "e" "a" "b" "c" "d" "e" "a" "b" "c" "d" "e" "a" "b" "c" "d" "e"! How can I correct this?



  • remove the loop with i



  • @VRonin Thanx but if I add another QStringList list2<<"f"<<"g"<<"h"<<"i"<<"j"; to List1 how can I get twice of its contents also?


  • Moderators

    @Kushan

    Not really sure what you are trying to do. Also the outcome seem not to match what I would expect.

    Anyway checkout the doucmentation for QStringList &QStringList::operator<<(const QList<QString> &other)

    QStringList list1;
    list1<<"a"<<"b"<<"c"<<"d"<<"e"; // list1 should contain "a" "b" "c" "d" "e" beause you copy individual strings
    QStringList List1;               // List1 is empty
    // copy one QStringList to another
    List1 << list1; // List1 should contain "a" "b" "c" "d" "e" because you copied with operator<< as described above
    // repeat to add another copy
    List1 << list1; // List1 should contain "a" "b" "c" "d" "e" "a" "b" "c" "d" "e" because you appended twice
    


  • @koahnig List1 is of type QList<QstringList> (i guessed from the title)

    @Kushan said in increasing QList<QStringList> contents twice!:

    Thanx but if I add another QStringList list2<<"f"<<"g"<<"h"<<"i"<<"j"; to List1 how can I get twice of its contents also?

    List1<<list1;
    List1[0]<<list2;
    List1[0] << List1[0]; //this is the duplication
    


  • @VRonin yeah its QList<QstringList>



  • @Kushan
    How come there's a post https://forum.qt.io/topic/85879/runtime-error-terminate-called-after-throwing-an-instance-of-std-bad_alloc by a different person? Do you have a double? Have you each been set homework? :)



  • @JNBarchan I read that post! In my problem there are no errors only the output is incorrect


  • Qt Champions 2016

    @JNBarchan said in increasing QList<QStringList> contents twice!:

    Have you each been set homework?

    My guess is the same class at University of Colombo School of Computing. I was too lazy to run a cross-correlation analysis on the posts, though, so don't take any of this at face value ... but then again ... if it looks like a duck, swims like a duck, and quacks like a duck, then it probably is a duck.



  • @kshegunov
    Excluding the code (which is virtually identical, including the lack of spaces), they both have:

    In my Qt C++ application I have a QList<QstringList> I want to increase the contents of its 0th index by the same amount!
    ...
    from the above code I want to make the contents of 0th index of List (i.e List[0]) a QStringList of "a" "b" "c" "d" "e" "a" "b" "c" "d" "e" ... How can I correct this?

    That's the same down to the "!"-mark! Something fishy is going on with ducks here... ;-)

    It's interesting to hear that Qt is being used in an education course. But why Qt for this question? There's nothing special about QList or QStringList, this could just as well have been posed for std C++. If you're going to teach Qt I would have expected a Qt-ish question, else don't bother.


  • Moderators

    @JNBarchan @kshegunov nice research guys.

    I had already the feeling that the initial post is really sloppy formulated like someone is fishing for an easy answer.



  • @kshegunov said in increasing QList<QStringList> contents twice!:

    if it looks like a duck, swims like a duck, and quacks like a duck

    s

    Slight thread derail, but I would say the op's question general is answered .


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.