私はC++でベクトルを扱っていますが、よくわからない次のMWEを思いつきました:
#include <iostream>
#include <vector>
using namespace std;
vector<double> pb()
{
vector<double> a;
a.push_back(1);
a.push_back(2);
a.push_back(3);
return a;
}
int main()
{
vector<double> asd;
asd = pb();
cout << asd.size() << endl;
asd = pb();
cout << asd.size() << endl; //WHY DOES THIS GIVE 3, AND NOT 6? asd HAS NOT BEEN EMPTIED AT ANY POINT
return 0;
}
理解できないのは、asd
を呼び出すたびにベクトルが「初期化」される理由pb()
です。私が期待していたのは、呼び出しpb()
が単に の内容に追加されることでしasd
た。