Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Problem with QMap

Problem with QMap

Scheduled Pinned Locked Moved Solved General and Desktop
qmap
15 Posts 3 Posters 5.4k 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.
  • C cristiano.narcisi

    Ok. But what does it happen when the function is contains(..key..)?

    mrjjM Offline
    mrjjM Offline
    mrjj
    Lifetime Qt Champion
    wrote on last edited by
    #6

    @cristiano.narcisi
    it looks like outside of constructor the key list is no more.
    i wanted to see if it says
    zero for par.

    C 1 Reply Last reply
    1
    • mrjjM mrjj

      @cristiano.narcisi
      it looks like outside of constructor the key list is no more.
      i wanted to see if it says
      zero for par.

      C Offline
      C Offline
      cristiano.narcisi
      wrote on last edited by
      #7

      @mrjj

      Ok but it is very strange. I give you another information: i can view all the key-value pair stored into the par variable using the watches of the editor!!!!

      mrjjM 1 Reply Last reply
      1
      • C cristiano.narcisi

        @mrjj

        Ok but it is very strange. I give you another information: i can view all the key-value pair stored into the par variable using the watches of the editor!!!!

        mrjjM Offline
        mrjjM Offline
        mrjj
        Lifetime Qt Champion
        wrote on last edited by
        #8

        @cristiano.narcisi
        OK ?!?! That also pretty strange.

        what about size inside and out?

        C 1 Reply Last reply
        0
        • mrjjM mrjj

          @cristiano.narcisi
          OK ?!?! That also pretty strange.

          what about size inside and out?

          C Offline
          C Offline
          cristiano.narcisi
          wrote on last edited by
          #9

          @mrjj

          Size outside the ctor is correct. It is 5!!!

          mrjjM 1 Reply Last reply
          1
          • C Offline
            C Offline
            cristiano.narcisi
            wrote on last edited by
            #10

            Using the iteartor i can view all the values stored in the QMap .... Probably i don't understand something of very important about how QMap acceses the data.
            //your code here

             QMap<const char *, QString>::ConstIterator ii;
             for( ii = par.constBegin(); ii != par.constEnd(); ++ii )
               qDebug() << ii.key() << " = " << ii.value();```
            
            1 Reply Last reply
            0
            • C cristiano.narcisi

              @mrjj

              Size outside the ctor is correct. It is 5!!!

              mrjjM Offline
              mrjjM Offline
              mrjj
              Lifetime Qt Champion
              wrote on last edited by
              #11

              @cristiano.narcisi
              ok ?!?

              I think you should try dump the list using par to see if key corruption
              else there is no reason contains should not work.

              C 1 Reply Last reply
              0
              • mrjjM mrjj

                @cristiano.narcisi
                ok ?!?

                I think you should try dump the list using par to see if key corruption
                else there is no reason contains should not work.

                C Offline
                C Offline
                cristiano.narcisi
                wrote on last edited by
                #12

                @mrjj

                Probably i have understood why i can retry the key. The problem is that i am using

                QMap< const char *, QString> 
                

                This means that the key is a POINTER and not the text !!!

                I have replaced the QMap template with

                QMap< QString, QString>
                

                Now the key is an ITEM and not a POINTER and i can find all the keys and the value stored within the QMap.

                Sorry for bothering you

                Thanks for hepling me

                Regards

                Cristiano Narcisi

                mrjjM 1 Reply Last reply
                2
                • mrjjM mrjj

                  @cristiano.narcisi said:

                  QMap

                  Hi
                  can you show the cpp of the constructor also?
                  How you add the items.

                  Inheriting from Qmap is a bit funky for me as with STL that was normally
                  not super idea. but i dont know with QList. :)

                  kshegunovK Offline
                  kshegunovK Offline
                  kshegunov
                  Moderators
                  wrote on last edited by
                  #13

                  @mrjj

                  Inheriting from Qmap is a bit funky

                  It's specially noted in the docs that deriving from a container specialization is not recommended. That's probably what seems funky ;)

                  Read and abide by the Qt Code of Conduct

                  1 Reply Last reply
                  1
                  • C cristiano.narcisi

                    @mrjj

                    Probably i have understood why i can retry the key. The problem is that i am using

                    QMap< const char *, QString> 
                    

                    This means that the key is a POINTER and not the text !!!

                    I have replaced the QMap template with

                    QMap< QString, QString>
                    

                    Now the key is an ITEM and not a POINTER and i can find all the keys and the value stored within the QMap.

                    Sorry for bothering you

                    Thanks for hepling me

                    Regards

                    Cristiano Narcisi

                    mrjjM Offline
                    mrjjM Offline
                    mrjj
                    Lifetime Qt Champion
                    wrote on last edited by
                    #14

                    @cristiano.narcisi
                    ok so
                    #define MAC_KEY "mac"
                    used as key did funky stuff?

                    good found :)

                    kshegunovK 1 Reply Last reply
                    0
                    • mrjjM mrjj

                      @cristiano.narcisi
                      ok so
                      #define MAC_KEY "mac"
                      used as key did funky stuff?

                      good found :)

                      kshegunovK Offline
                      kshegunovK Offline
                      kshegunov
                      Moderators
                      wrote on last edited by
                      #15

                      @mrjj said:

                      used as key did funky stuff?

                      The only funky stuff with that macro is that char * doesn't have a meaningful operator <, which is required for it to be a key in the map. The comparison is done as you'd compare integers.

                      Read and abide by the Qt Code of Conduct

                      1 Reply Last reply
                      1

                      • Login

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