Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //push_back method - call by value not reference
- /*
- * Code to explain the issue
- * Followed by modified version of same code , to meet my requirements
- */
- vector<vector<string> > outerVector;
- vector<string> innerVector;
- cout << "Inner Vector Address: " << &innerVector<< endl;//Inner Vector Address: 0x28febc
- outerVector.push_back(innerVector);
- string one = "one";
- string two ="two";
- vector<string> lastElement = outerVector.back();
- cout << "OuterVector LastElement Address: " << &outerVector.back() << endl;//OuterVector LastElement Address: 0x3d2238
- lastElement.push_back(one);
- cout << "lastElement Size: " << lastElement.size()<< endl;//lastElement Size: 1
- lastElement = outerVector.back();
- cout << "OuterVector LastElement Address: " << &outerVector.back() << endl;//OuterVector LastElement Address: 0x3d2238
- lastElement.push_back(two);
- cout << "lastElement Size: " << lastElement.size() << endl;//lastElement Size: 1
- /*
- * In the below code
- * I modified the above code to support reference for the inner elements
- */
- //Store the address in inner vector to access the original element
- vector<vector<string>*> outerVector;
- vector<string>* innerVector = new vector<string>;
- cout << "Inner Vector Address: " << innerVector<< endl;//Inner Vector Address: 0x762238
- outerVector.push_back(innerVector);
- string one = "one";
- string two ="two";
- vector<string>* lastElement = outerVector.back();
- cout << "OuterVector LastElement Address: " << outerVector.back() << endl;//OuterVector LastElement Address: 0x762238
- lastElement->push_back(one);
- cout << "lastElement Size: " << lastElement->size()<< endl;//lastElement Size: 1
- lastElement = outerVector.back();
- cout << "OuterVector LastElement Address: " << outerVector.back() << endl;//OuterVector LastElement Address: 0x762238
- lastElement->push_back(two);
- cout << "lastElement Size: " << lastElement->size() << endl;//lastElement Size: 2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement