Joã*_*ira 0 c++ memory-management
在制作这个节目期间,我发生了很多事情,我觉得最好问问你们.
例如,如果我有一个调用向量的特定结构的循环,那么更好地反复调用向量,如下所示:
FP_list[n].callsign=...
FP_list[n].de_airport=...
FP_list[n].ar_airport=...;
FP_list[n].aircraft_type=...
FP_list[n].trueairspeed=...
FP_list[n].FL_route.push_back(Aircraft.GetClearedAltitude());
FP_list[n].last_WP=...
FP_list[n].next_WP=...
Run Code Online (Sandbox Code Playgroud)
...
或者声明一个临时变量并从这一点开始使用它,如下所示:
FP temp=FP_list[n];
temp.callsign=...
...
temp.next_WP=...
Run Code Online (Sandbox Code Playgroud)
哪一个在内存消耗和运行时间方面更好?
先感谢您
如果FP_list
是std::vector
或类似的,你可以这样做:
FP& p = FP_list[n];
^^^ use a reference
p.callsign = ...;
p.de_airport = ...;
p.ar_airport = ...;
Run Code Online (Sandbox Code Playgroud)
此代码使用引用来访问数据.引用使您可以直接访问它引用的元素.它的工作方式有点像指针.现在你只需要调用operator[]
一次,你的代码就会更加紧凑.
如注释中所述,请注意,如果对向量本身进行更改,引用可能会失效,例如添加或删除元素.
这假设您实际上想要更改存储在向量中的内容.如果您不想更改它们,则必须创建副本:FP p = FP_list[n];
.
归档时间: |
|
查看次数: |
53 次 |
最近记录: |