以下のコードでは、d1 の 3 つのオブジェクトがあり、d2 は push_back() を実行するために作成されます。1 つは作成したとき、1 つは v.push_back() を呼び出したとき、もう 1 つは実際にベクターにコピーされたときです。
C++03 で std::vector を使用せずにこれを回避するための最良の代替手段は何ですか?
#include <iostream>
#include <vector>
#include <string>
using namespace std;
struct Details
{
string fname;
string lname;
string address;
int age;
};
int main(int argc, char **argv)
{
vector<Details> v;
Details d1;
d1.fname = "vivek";
d1.lname = "kumar";
d1.address = "New Delhi";
d1.age = 25;
v.push_back(d1);
Details d2;
d2.fname = "some name";
d2.lname = "some lastname";
d2.address = "some address";
d2.age = 25;
v.push_back(d2);
return 0;
}