c++ - Multidimensional Vector? -


so started learning c++ , i'm trying figure out how access multidimensional vector or vector vectors stored inside of it. i've looked on , can't find i'm looking for. want able test contents of each vector inside of multidimensional vector printing them out. whenever try see size of vector after each iteration, i'm getting random constants each iteration. may memory locations i'm not sure.

#include <cmath> #include <cstdio> #include <vector> #include <iostream> #include <algorithm> using namespace std;   int main() { int numofarrays; int numofqueries;  vector<vector<int>> arr(numofarrays);  cin >> numofarrays; cin >> numofqueries;  int arrsize; int number; vector<int> indarr;   // outer loop, appends vectors containing ints multidimensional vector (int = 0; < numofarrays; i++) {     cin >> arrsize; // getting number of elements user      // inner loop, gets user inputted values creates vector added multidimensional vector     (int x = 0; x < arrsize; x++) {         cin >> number;          indarr.push_back(number);          cout << "last number added vector: " << number << endl; // checking see if correct numbers being added.      }      arr.push_back(indarr);     cout << "multidimensional vector size: " << arr.size() << endl; // checking size of vector after each iteration     indarr.clear(); // empties vector next iteration }     return 0; } 

as new c++, welcome constructive criticism.

newly revised code:

#include <cmath> #include <cstdio> #include <vector> #include <iostream> #include <algorithm> using namespace std;   int main() { int numofarrays; int numofqueries;   cin >> numofarrays; cin >> numofqueries;  vector<vector<int>> arr(numofarrays);   // outer loop, appends vectors containing ints multidimensional vector (int = 0; < numofarrays; i++) {     int arrsize;     vector<int>indarr;     cin >> arrsize; // getting number of elements user     indarr.resize(arrsize); // resizing array next values     // inner loop, gets user inputted values creates vector added multidimensional vector     (int x = 0; x < arrsize; x++) {         int number;         cin >> number;          indarr.push_back(number);          cout << "last number added vector: " << number << endl; // checking see if correct numbers being added.      }      arr.push_back(indarr);     cout << "multidimensional vector size: " << arr.size() << endl; // checking size of vector after each iteration }  int test = arr[0][0]; cout << test;      return 0; } 

just tips:

vector<vector<int>> arr(numofarrays); constructs vector of vectors of size numofarrays. numofarrays not yet read cin, undefined number. care order of operations.

arr.push_back(indarr); adds vector @ end of arr.

hence, in loop, if fix order of reading numofarrays , declaring arr, start array of size numofarrays, , each cycle add element. end arr holding 2 times numofarrays elements.

also, indarr temporary variable, reset each cycle. although there nothing wrong doing, in general better keep each variable limited scope. if define indarr inside loop, automatically cleared , re-created. may not efficient way things in cases, i'd leave details later.

something should work you:

#include <cmath> #include <cstdio> #include <vector> #include <iostream> #include <algorithm> using namespace std;  int main() {   int numofarrays;   int numofqueries;    cin >> numofarrays;    cin >> numofqueries; // unused variable    vector<vector<int> > arr;    // outer loop, set vectors containing ints multidimensional vector   (int = 0; < numofarrays; i++) {     int arrsize;     vector<int> indarr;      cin >> arrsize; // getting number of elements user      // inner loop, gets user inputted values creates vector added multidimensional vector     (int x = 0; x < arrsize; x++) {       int number;       cin >> number;        indarr.push_back(number);          cout << "last number added vector: " << number << endl; // checking see if correct numbers being added.      }      arr.push_back(indarr);     cout << "multidimensional vector size: " << arr.size() << endl; // checking size of vector after each iteration   }    return 0; } 

Comments

Popular posts from this blog

javascript - Replicate keyboard event with html button -

node.js - Node js - Trying to send POST request, but it is not loading javascript content -

javascript - Web audio api 5.1 surround example not working in firefox -