私はこれをまっすぐにする必要があります。以下のコードを使用すると、次のようになります。
vector<unsigned long long int> getAllNumbersInString(string line){
vector<unsigned long long int> v;
string word;
stringstream stream(line);
unsigned long long int num;
while(getline(stream, word, ',')){
num = atol(word.c_str());
v.push_back(num);
}
return v;
}
このサンプル コードは、入力文字列をベクトルに格納された一連の unsigned long long int に変換するだけです。
上記の場合、この関数を呼び出す別の関数があり、ベクトルに約 100,000 の要素があるように見える場合、これは、それを返すと、新しいベクトルが作成され、要素が同じように作成されることを意味しますか?関数内で、関数内の元のベクトルは戻るときに削除されますか? これまでの私の理解は正しいですか?
通常、コンテナーに関してはすべての関数がポインターを返すようにコードを記述しますが、プログラムの設計上、および上記の私の理解では、コンテナーに関しては常にポインターを返す必要がありますか?