Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Special Interest Groups
  3. C++ Gurus
  4. How to Get Length Of Int* Array
Forum Updated to NodeBB v4.3 + New Features

How to Get Length Of Int* Array

Scheduled Pinned Locked Moved Solved C++ Gurus
26 Posts 8 Posters 5.8k Views 2 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.
  • K Ketan__Patel__0011
    11 Feb 2021, 15:57

    @KroMignon

    i want to find how many elements are in the My Vector

    i was used vector::size() function but it is return to me total size of vector

    for example

    my Vector can store 10 elements but i am add only 6 elements

    so my Vector length is 6 And Vector size is 10

    K Offline
    K Offline
    KroMignon
    wrote on 11 Feb 2021, 16:21 last edited by
    #21

    @Ketan__Patel__0011 said in How to Get Length Of Int* Array:

    i want to find how many elements are in the My Vector

    Here are a little code extract which should be self explaining:

       std::vector<int> test;
        qDebug() << "Size is" << test.size() << "/ Capacity is" << test.capacity();
        test.reserve(10);
        qDebug() << "Size is" << test.size() << "/ Capacity is" << test.capacity();
        test.push_back(11);
        qDebug() << "Size is" << test.size() << "/ Capacity is" << test.capacity();
        test.push_back(11);
        test.push_back(11);
        qDebug() << "Size is" << test.size() << "/ Capacity is" << test.capacity();
        test.pop_back();
        qDebug() << "Size is" << test.size() << "/ Capacity is" << test.capacity();
    

    and output is:
    Size is 0 / Capacity is 0
    Size is 0 / Capacity is 10
    Size is 1 / Capacity is 10
    Size is 3 / Capacity is 10
    Size is 2 / Capacity is 10

    It is an old maxim of mine that when you have excluded the impossible, whatever remains, however improbable, must be the truth. (Sherlock Holmes)

    1 Reply Last reply
    4
    • K Ketan__Patel__0011
      11 Feb 2021, 15:57

      @KroMignon

      i want to find how many elements are in the My Vector

      i was used vector::size() function but it is return to me total size of vector

      for example

      my Vector can store 10 elements but i am add only 6 elements

      so my Vector length is 6 And Vector size is 10

      C Offline
      C Offline
      Christian Ehrlicher
      Lifetime Qt Champion
      wrote on 11 Feb 2021, 16:38 last edited by
      #22

      @Ketan__Patel__0011 said in How to Get Length Of Int* Array:

      so my Vector length is 6 And Vector size is 10

      No, thats wrong. The size is 6, the std::vector<> has no function length().

      Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
      Visit the Qt Academy at https://academy.qt.io/catalog

      1 Reply Last reply
      4
      • K Offline
        K Offline
        Kent-Dorfman
        wrote on 11 Feb 2021, 23:07 last edited by Kent-Dorfman 2 Nov 2021, 23:12
        #23
        This post is deleted!
        1 Reply Last reply
        0
        • K Offline
          K Offline
          Kent-Dorfman
          wrote on 12 Feb 2021, 03:09 last edited by
          #24

          "length" of a multidimensional array is kind of a meaningless concept...and resizing those structures requires well defined conops of what it means to resize, and what to do with new elements, or elements that must be thrown away...AND...will almost always require complete data move to a new container of appropriate size.

          While sometimes useful, a vector of vectors is nontrivial to manage correctly.

          1 Reply Last reply
          0
          • J Offline
            J Offline
            JonB
            wrote on 12 Feb 2021, 10:04 last edited by JonB 2 Dec 2021, 10:05
            #25

            @Ketan__Patel__0011
            I don't really understand just which "sizes" or "lengths" you are wanting to discover.

            A vector of vectors is a jagged array, meaning that each sub-vector element in a parent vector has its own size/length/number of elements. It is not "rectangular" like C/C++ int array[outer_elements][inner_elements] would be. Also, unlike the C one, you can & do add elements at all levels dynamically, so the number of items change at runtime. You would have to iterate the vector to discover its child element sizes to discover the total size used. You can resize() and/or reserve() if you want to reserve a certain size (number of elements)/make it "rectangular", and thereby avoid needing to iterate to discover size if desired.

            @Christian-Ehrlicher , @KroMignon , @J-Hilk have given you code/references for the above.

            1 Reply Last reply
            4
            • X Offline
              X Offline
              xtofl
              wrote on 25 Feb 2021, 15:23 last edited by xtofl
              #26

              vector will solve allocation/deallocation while keeping contiguous storage. It is intended for 1D arrays; everything more dimensional needs to come from somewhere else; doing it yourself while not familiar with C++ is probably not the best idea.

              Since it seems you're dealing with matrices, getting a dedicated, fast, reliable library is probably the best thing to do. I suggest looking into Eigen.

              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