How to store values in two dimensional vector

I need to read data from a matrix and store it in two dimensional vector.
Say the matrix file is
4
0 1 1 0
1 0 0 0
1 3 1 1
1 0 0 1
The first number 4 indicates the size of the matrix, say 4X4 matrix.
I have to read this data from the file and store it in a two dimensional vector.
I initialized the vector as vector<vector<int> > myVector;
I tried storing like this
for (rows = 0; rows < size; rows++) {
for (columns = 0; columns < size; columns++) {
inputFile >> value;
myVector[rows][columns] = value; // not working
cout<<rows<<" "<<columns<<" "<<myVector[rows][columns]<<endl; // not working
}
}

Also I need help in how should I access the elements in the vector after inserting.
Please let me know how to do this.
BeebutterAsked:
Who is Participating?
 
ZoppoConnect With a Mentor Commented:
Hi Beebutter,

in a 'vector' you can't access elements by index with []-operator which don't already exist. I don't know of any array-implementation which does this.

I attached sample code which demonstrates how to use vector as I think you need.

Hope that helps,

ZOPPO
int n = 4;
 
vector < vector < int > > v;
 
v.resize( n ); // set row size to 'n'
 
for ( int i = 0; i < n; i++ )
{
	v[i].resize( n ); // set col size of row 'i' to 'n'
 
	for ( int j = 0; j < n; j++ )
	{
		v[i][j] = i * j; // put a value at row 'i', col 'j'
	}
}
 
// output the matrix
cout << "Rows: " << v.size() << endl;
 
for ( vector < vector < int > >::iterator itRow = v.begin(); itRow != v.end(); itRow++ )
{
	for ( vector < int >::iterator itCol = itRow->begin(); itCol != itRow->end(); itCol++ )
	{
		cout << *itCol << " ";
	}
 
	cout << endl;
}

Open in new window

0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.