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. How to create array of objects at runtime.
Forum Updated to NodeBB v4.3 + New Features

How to create array of objects at runtime.

Scheduled Pinned Locked Moved General and Desktop
14 Posts 8 Posters 11.7k Views 1 Watching
  • 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.
  • D Offline
    D Offline
    DenisKormalev
    wrote on last edited by
    #4

    Please, look "here":http://doc.qt.nokia.com/4.7/qlist.html . You will find a bunch of examples there.

    1 Reply Last reply
    0
    • A Offline
      A Offline
      agupta
      wrote on last edited by
      #5

      Hello Denis

      I still have a doubt....

      After reading the data(line by line) from file, I have to store them in my class member variables for each object and move this object in QVector... So how can i do this using QList?

      Thank You,
      Aditya Gupta

      1 Reply Last reply
      0
      • L Offline
        L Offline
        LinusA
        wrote on last edited by
        #6

        [quote author="agupta" date="1311226392"]Hi All

        In my project I need to read a file and each line in a file consists of two values and these two values needs to be stored in the object, and all the object need to be inserted into the vector.

        My file is something like this:
        4,5
        6,5
        ...
        ...
        ...
        [/quote]
        First you have to decide whether you need a QList or a QVector. In your case, I'd probably prefer a QVector. See here fore more details: http://doc.qt.nokia.com/4.7-snapshot/containers.html

        Now, there is a nice handy thing called QPair http://doc.qt.nokia.com/latest/qpair.html.

        In your example, simply do:
        @
        QVector< QPair<int, int> > myPairVec;

        // if you know the number of lines in your file, pre-allocate
        // the vector for best speed:
        myPairVec.reserve(numLines);

        // now add to the vector
        for(int i = 0; i < numLines; ++i) {
        // read line from file
        // parse line
        // put values into integers x and y

        // now we can add to the vector
        myPairVec.append(qMakePair(x, y));
        }//end for

        // if you want to access elements, do so by
        cout << "first x = " << myPairVec.at(0).first << endl;
        cout << "last y = " << myPairVec.last().second << endl;
        @

        1 Reply Last reply
        0
        • L Offline
          L Offline
          LinusA
          wrote on last edited by
          #7

          Oh, and you could've done the same thing with a QList of course. The difference is that QList has one more level of "indirection", whereas QVector stores its element in one continuous memory block. This influences performance (good or bad, depends). But for your case: Probably doesn't matter.

          qMakePair is a useful helper that will create a QPair<T1, T2>, based on the types of the arguments...

          So you wouldn't have to create an object. On the other hand, the members .first and .second are public, and in your first post you said you needed private members...

          1 Reply Last reply
          0
          • M Offline
            M Offline
            mlong
            wrote on last edited by
            #8

            [quote author="LinusA" date="1311228084"]So you wouldn't have to create an object. On the other hand, the members .first and .second are public, and in your first post you said you needed private members...[/quote]

            Of course, a QPair can always be used as a private member variable in an object too, should that use case be appropriate.

            Software Engineer
            My views and opinions do not necessarily reflect those of anyone -- living or dead, real or fictional -- in this universe or any other similar multiverse node. Void where prohibited. Your mileage may vary. Caveat emptor.

            1 Reply Last reply
            0
            • Y Offline
              Y Offline
              yanbellavance
              wrote on last edited by
              #9

              you can also do this:

              @struct myPair{
              int val1;
              int val2;
              };

              QList <myPair> myPairList;@

              1 Reply Last reply
              0
              • A Offline
                A Offline
                andre
                wrote on last edited by
                #10

                agupta, could you tell us a bit more about this object you need to store your values in? Is it an object you already have? If so, what does it look like? Note that not all objects are suitable to store as value in a container. You may need to store a pointer to the object on the heap instead. QObject and everything derived from it is such a type of object...

                1 Reply Last reply
                0
                • S Offline
                  S Offline
                  saravanavelu
                  wrote on last edited by
                  #11

                  i have two tables internaldelivery and products.in internaldelivery table(pid,pname,qty,unit,preparedby,givento,date)is there.i have inserted (pname,qty,unit,preparedby,givento,date)in internaldelivery table.in internaldeliverytable (pname) and also in products table (name) is same.how can i get the pid value to insert the internaldeliverytable. Please find and say the solution for me.

                  1 Reply Last reply
                  0
                  • S Offline
                    S Offline
                    saravanavelu
                    wrote on last edited by
                    #12

                    anybody say that qt is end or not

                    1 Reply Last reply
                    0
                    • A Offline
                      A Offline
                      andre
                      wrote on last edited by
                      #13

                      [quote author="saravanavelu" date="1378978443"]anybody say that qt is end or not[/quote]

                      I have no clue what you are asking, or how it is relevant to this topic.

                      1 Reply Last reply
                      0
                      • ? Offline
                        ? Offline
                        A Former User
                        wrote on last edited by
                        #14

                        [quote author="saravanavelu" date="1378978443"]anybody say that qt is end or not[/quote]

                        Hi saravanavelu,
                        Do you mean that Qt is dead or still working. If that is you question, then
                        let me tell you that Qt is now acquired by Digia from Nokia. AFAIK Qt is now one of the most used IDE in the world. Qt is has released its new version, ie Qt 5.1.1 recently. Also developments are going on different OS like Android, iOS, Linux, Windows and many more.
                        Many companies are nowadays using Qt as their development platforms.
                        Check the Qt website and you can find lots of changes have occurred in the recent years.

                        Regards
                        Ansif

                        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