S
Sanjay Kumar
Folks,
I am getting back into C++ after a long time and I have
this simple question: How do pyou ass a STL container
like say a vector or a map (to and from a function) ?
function:
vector<string> tokenize(string s){
vector<string> myvector;
//split s and push_back into myvector;
//is this ok ? vector destroyed on exit from funcion ?
return myvector;
}
main:
vector<string> result = tokenize(s);
For it to work, there has to be deep copy of the result of vector inside
function (myvector) into the "result" vector before myvector is destroyed.
Is that how it works ? Could this be inefficient if there is large amount
of data to be copied from the container ?
In that case should I user pointers ? Or most likely say auto_ptr to the
Container ? Like below:
function:
auto_ptr<vector<string>> tokenize(string s){
auto_ptr <vector<string> > myvector(new vector<string>);
//split s and push_back into (*myvector)push_back(xx);
//now return auto_ptr
return myvector;
}
main:
vector<string> result = tokenize(s);
Or is this an overkill (and may be even incorrect).
I have read about passing iterators instead. How would you do about two
with iterators ?
Any help would be appreciated.
thanks you,
-Sanjay Kumar
I am getting back into C++ after a long time and I have
this simple question: How do pyou ass a STL container
like say a vector or a map (to and from a function) ?
function:
vector<string> tokenize(string s){
vector<string> myvector;
//split s and push_back into myvector;
//is this ok ? vector destroyed on exit from funcion ?
return myvector;
}
main:
vector<string> result = tokenize(s);
For it to work, there has to be deep copy of the result of vector inside
function (myvector) into the "result" vector before myvector is destroyed.
Is that how it works ? Could this be inefficient if there is large amount
of data to be copied from the container ?
In that case should I user pointers ? Or most likely say auto_ptr to the
Container ? Like below:
function:
auto_ptr<vector<string>> tokenize(string s){
auto_ptr <vector<string> > myvector(new vector<string>);
//split s and push_back into (*myvector)push_back(xx);
//now return auto_ptr
return myvector;
}
main:
vector<string> result = tokenize(s);
Or is this an overkill (and may be even incorrect).
I have read about passing iterators instead. How would you do about two
with iterators ?
Any help would be appreciated.
thanks you,
-Sanjay Kumar