Rom*_*ain 0 c++ arrays pointers
考虑一个名为A的c ++类.使用对象数组的优缺点是什么:
std::array<A, 10>
Run Code Online (Sandbox Code Playgroud)
而不是一个指针数组:
std::array<A*, 10>
Run Code Online (Sandbox Code Playgroud)
以下是重要的区别:
对象数组:
std::array.指针数组:
std::array包含指针的对象管理.nullptr有价值,即不指向任何对象这些东西中的任何一个是pro还是con,取决于您的用例.
现在对于基于意见的部分,作为初学者的提示:在我看来,内存由数组管理的事实清楚地表明数组"拥有"对象.通常不清楚谁拥有指针所指向的对象.所有权的清晰度,以及始终是奖金的缓存效率,使得对象数组在您不确定时是一个很好的默认选择.尽可能在数组中使用对象,在需要时使用指针.当你需要指针时,考虑是否std::unique_ptr合适.