To declare a 2D array of char you can simply use a vector of string. It represents basically a 2D array as string is inherently array of characters. Just declare vector<string> v(100); That's it.
A 2D vector is a vector of the vector. Like 2D arrays, we can declare and assign values to a 2D vector!
Two-Dimensional Vectors One way to represent a two-dimensional vector is with vector components, which simply tell you how far the vector goes in each direction. For example, a vector with an x-component of 4 and a y-component of 3 that started at the origin would end at coordinates (4,3).
Use the std::vector::vector(count, value)
constructor that accepts an initial size and a default value:
std::vector<std::vector<int> > fog(
ROW_COUNT,
std::vector<int>(COLUMN_COUNT)); // Defaults to zero initial value
If a value other than zero, say 4
for example, was required to be the default then:
std::vector<std::vector<int> > fog(
ROW_COUNT,
std::vector<int>(COLUMN_COUNT, 4));
I should also mention uniform initialization was introduced in C++11, which permits the initialization of vector
, and other containers, using {}
:
std::vector<std::vector<int> > fog { { 1, 1, 1 },
{ 2, 2, 2 } };
Let's say you want to initialize 2D vector, m*n, with initial value to be 0
we could do this
#include<iostream>
int main(){
int m = 2, n = 5;
vector<vector<int>> vec(m, vector<int> (n, 0));
return 0;
}
There is no append
method in std::vector
, but if you want to make a vector containing A_NUMBER
vectors of int
, each of those containing other_number
zeros, then you can do this:
std::vector<std::vector<int>> fog(A_NUMBER, std::vector<int>(OTHER_NUMBER));
The general syntax, as depicted already is:
std::vector<std::vector<int> > v (A_NUMBER, std::vector <int> (OTHER_NUMBER, DEFAULT_VALUE))
Here, the vector 'v' can be visualised as a two dimensional array, with 'A_NUMBER' of rows, with 'OTHER_NUMBER' of columns with their initial value set to 'DEFAULT_VALUE'.
Also it can be written like this:
std::vector <int> line(OTHER_NUMBER, DEFAULT_VALUE)
std::vector<std::vector<int> > v(A_NUMBER, line)
Inputting values in a 2-D vector is similar to inputting values in a 2-D array:
for(int i = 0; i < A_NUMBER; i++) {
for(int j = 0; j < OTHER_NUMBER; j++) {
std::cin >> v[i][j]
}
}
Examples have already been stated in other answers....!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With