Error while using 2d Vectors in c++ -


vector <vector <int>> framevecs(4); vector <int> t1 = getpeaks (vec1); vector <int> t2 = getpeaks (vec2); vector <int> t3 = getpeaks (vec3); vector <int> t4 = getpeaks (vec4);  framevecs[0].reserve(t1.size()); framevecs[1].reserve(t2.size()); framevecs[2].reserve(t3.size()); framevecs[3].reserve(t4.size());  framevecs.push_back (t1); framevecs.push_back (t2); framevecs.push_back (t3); framevecs.push_back (t4); 

i subscript out of range error during pushback part of snippet.

just 2 days code same thing:

vector <vector <int>> framevecs;  framevecs.push_back (getpeaks (vec1)); framevecs.push_back (getpeaks (vec2)); framevecs.push_back (getpeaks (vec3)); framevecs.push_back (getpeaks (vec4)); 

and running fine last 2 months .. , started getting subscript out of range error in pushback part , hence had change thsi particular part 1 above it, , still getting error.

i mean, vectors uncertain in behavior ?

ps: getpeaks() returns int vector!

i think push_back doesn't think does.

vector <vector <int>> framevecs(4); 

passing 4 vector on construction creates 4 empty int-vectors. if push_back 4 vectors t1, t2, t3 , t4 add 4 vectors framevecs, have 8 entries in framevecs. maybe removing (4) , writing:

vector <vector <int>> framevecs; 

will solve problem.

if try access framevecs[0][0] example (although not shown in example) error.

after 4th push_back framevecs looks this:

framevecs[0] // empty framevecs[1] // empty framevecs[2] // empty framevecs[3] // empty framevecs[4] // contains t1 framevecs[5] // contains t2 framevecs[6] // contains t3 framevecs[7] // contains t4 

calling reserve unnecessary in example.


Comments

Popular posts from this blog

php - Why I am getting the Error "Commands out of sync; you can't run this command now" -

linux - Does gcc have any options to add version info in ELF binary file? -

java - Are there any classes that implement javax.persistence.Parameter<T>? -