Solved

Array of vectors containing integers

Posted on 2011-03-08
5
292 Views
Last Modified: 2012-05-11
Hello experts,

I would like to have 2D array containing lists of integers.

I tried this one:

std::vector<int> linesGrid [64, 48];

but it does not compile.

What do I do wrong?

Thank you

panJames
0
Comment
Question by:panJames
  • 2
  • 2
5 Comments
 
LVL 53

Expert Comment

by:Infinity08
ID: 35069913
If you want to do that with vectors, you'll need a definition that looks somewhat like this :
std::vector<std::vector<int> > linesGrid(64, std::vector<int>(48));

Open in new window

0
 

Author Comment

by:panJames
ID: 35070083
WOW!

I am trying to get my head around it.

1. std::vector<std::vector<int>> linesGrid;

It my understanding: linesGrid is the list of (list of integers)

2. linesGrid(64, std::vector<int>(48));

In my understanding it looks like a function call with two variables where the second one is again a function???

I am so confused here... :(

panJames
0
 
LVL 53

Accepted Solution

by:
Infinity08 earned 500 total points
ID: 35070300
>> It my understanding: linesGrid is the list of (list of integers)

More accurately : a vector of vectors of ints.


>> In my understanding it looks like a function call with two variables where the second one is again a function???

It's calling the constructor of std::vector, where the first argument is the amount of items you want in the vector, and the second argument is how those items should be initialized.

Refer to :

        http://www.cplusplus.com/reference/stl/vector/vector/
0
 
LVL 33

Expert Comment

by:sarabande
ID: 35070301
the point is that std::vector is a 1d-array. to get a 2d-array you do a vector of row vectors.

Sara

0
 
LVL 33

Expert Comment

by:sarabande
ID: 35070389
actually it is not really a grid like int grid[64][48]  cause each row vector individually could grow or shrink. but if you do an initialisation like infinity08 showed and don't do a push_back or erase on any of the row vectors you pretty well have the same behavior than with a fixed-sized int 2d-array.

Sara
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Errors will happen. It is a fact of life for the programmer. How and when errors are detected have a great impact on quality and cost of a product. It is better to detect errors at compile time, when possible and practical. Errors that make their wa…
C++ Properties One feature missing from standard C++ that you will find in many other Object Oriented Programming languages is something called a Property (http://www.experts-exchange.com/Programming/Languages/CPP/A_3912-Object-Properties-in-C.ht…
The goal of the video will be to teach the user the concept of local variables and scope. An example of a locally defined variable will be given as well as an explanation of what scope is in C++. The local variable and concept of scope will be relat…
The viewer will learn how to use the return statement in functions in C++. The video will also teach the user how to pass data to a function and have the function return data back for further processing.

910 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

23 Experts available now in Live!

Get 1:1 Help Now