C++ Tutorials

# C++ Tutorials

## How to implement c++ 2d vector

``````/* C++ code to demonstrate a 2D vector
with elements(vectors) inside it. */
#include <iostream>
#include <vector>
using namespace std;

int main()
{
/*
Below we initialize a 2D vector
named "vect" on line 12 and then
we declare the values on
line 14, 15 and 16 respectively.
*/

vector<vector<int>> vect
{
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};

/*
Now we print the values that
we just declared on lines
14, 15 and 16 using a simple
nested for loop.
*/

for (int i = 0; i < vect.size(); i++)
{
for (int j = 0; j < vect[i].size(); j++)
{
cout << vect[i][j] << " ";
}
cout << endl;
}

return 0;
}
``````

## c++ 2d vector initialization list

``````vector<vector<int>> myvect = { {10,20,30,40},
{50,60,70,80} };

vector<vector<int>> myvect{ vector<int>{10,20,30,40},
vector<int>{50,60,70,80} };``````

## c++ vector

``````std::vector<dataType> v;
std::cout << v.max_size();``````

vector is a sequence container class that implements dynamic array, means size automatically changes when appending elements.

Erase: All the elements of the vector are removed using clear() function. erase() function

Max size: max_size() is the theoretical maximum number of items that could be put in your vector. On a 32-bit system, you could in theory allocate 4Gb == 2^32 which is 2^32 char values, 2^30 int values or 2^29 double values.

## c++ 2d vector class

``````postnet(vector<int> const &zip)
: pncode(5, vector<int>(5))
{
encode(zip);
}
postnet(vector<vector<int> > const &pnc = vector<vector<int> >(5, vector<int>(5)))
{
assert(pnc.size()==5);
for (int i=0;i<pnc.size();++i)
assert(pnc[i].size()==5);

pncode = pnc;
}``````

## c++ 2d array of vectors

`````` int** ary = new int*[rowCount];
for(int i = 0; i < rowCount; ++i)
ary[i] = new int[colCount];``````

## c++ 2d vector push_back

``````vector <vector <BigInt> > matr;

for (BigInt i=0;i<rij;i++) {
for (BigInt j=0;j<kolom-1;j++) {
matr.push_back().push_back((i+1)^(pow-j));
}
}``````

## dynamic 2d vector c++

``````#include <vector>
#include <iostream>
auto make_one(int rows, int cols) {
return std::vector<std::vector<int>>(rows, std::vector<int>(cols));
}
int main() {
auto v = make_one(5, 3);
v[2][1] = 7; // demo storing a value
for(auto& r : v) { // demo output
for(int n: r) std::cout << n << ' ';
std::cout << '\n';
}
} ``````

## 3d vector c++

``````#include<vector>
#include<iostream>
#include<ctime>
using namespace std;

#define DIM1 100
#define DIM2 9
#define DIM3 120

int main()
{
clock_t t1_start = clock();
vector<vector<vector<string>>> vec1(DIM1, vector<vector<string>>(DIM2, vector<string>(DIM3)));
clock_t t1_end = clock();
double diff1 = (t1_end - t1_start) / double(CLOCKS_PER_SEC);

clock_t t2_start = clock();
vector<vector<vector<string>>> vec2;
vec2.resize(DIM1);
for(int i = 0; i < DIM1; i++)
{
vec2[i].resize(DIM2);
for(int j = 0; j < DIM2; j++)
vec2[i][j].resize(DIM3);
}
clock_t t2_end = clock();

double diff2 = (t2_end - t2_start) / double(CLOCKS_PER_SEC);

cout<<"1st definition used time: "<<diff1<<"s"<<endl;
cout<<"2nd definition used time: "<<diff2<<"s"<<endl;
}``````

## how to take input in 2d vector in c++

``````for(int i=0; i<n; i++){
jail[i].reserve(n);
for(int j=0; j<n; j++){
cin>>jail[i][j];
}
}``````