假设我们有一些类,比如说class Apple,想要存储一个std::vector包含的类Apple.
向量是否应包含指针,引用或普通对象?
std::vector<Apple*> vector; // Definitely won't copy the Apple on lookup,
// but I would prefer not to use pointers if I don't have to
std::vector<Apple&> vector; // Seems circuitous?
std::vector<Apple> vector; // I don't know if this copies the Apple on each lookup
Run Code Online (Sandbox Code Playgroud)
我的目标是在打电话时这样做
Apple& a = vector[4];
Run Code Online (Sandbox Code Playgroud)
该Apple不会被复制.
我已经使用C++超过一年了,我一直在努力解决这个问题.是否有一个简单的解释为什么这三种方法中的一种是最佳实践?