0
此代碼將新對象添加到函數內的靜態列表中。 該列表通過引用傳遞給函數。靜態列表中的變量生存期
什麼在列表中的新對象的生命週期?
代碼示例:
#include <list>
#include <string>
#include <iostream>
using namespace std;
struct MyStruct
{
int x;
string str;
};
void addStructToList(list<MyStruct> &myStructlist, int _x, string _str)
{
MyStruct newStruct;
newStruct.x = _x;
newStruct.str = _str;
myStructlist.push_back(newStruct);
}
void main()
{
list<MyStruct> myStructlist;
addStructToList(myStructlist, 111, "aaa");
addStructToList(myStructlist, 222, "bbb");
addStructToList(myStructlist, 333, "ccc");
for (auto it = myStructlist.begin(); it != myStructlist.end(); it++)
{
cout << it->x << " " << it->str << endl;
}
system("pause");
}
輸出:
111 aaa
222 bbb
333 ccc
Press any key to continue . . .
問:
是在內存使用方面的代碼安全嗎?
什麼是「newStruct」一生? addStructToList()或Main()?
我在代碼中看不到任何靜態列表。 – Oktalist
建議閱讀:[爲什麼「使用名稱空間標準;」被認爲是不好的做法?](http://stackoverflow.com/questions/1452721/why-is-using-namespace-std-considered-bad-practice) – Deduplicator