编辑:TLDR?这是一个摘要:
要求是一个基本上无限(或任意)长的容器。所以 list 听起来是个好主意,因为它可以将对象放在任何可用的内存空间中。
但是,向量在访问时要快得多/高效,但是如果我们没有长的顺序条带,则可能无法放入内存中。
建议使用指针向量来减少内存使用,但是如果有 1 GB 的指针并且我有 4GB 的内存,问题仍然存在,它可能不适合!
解决方案:向量列表可能是要走的路。列表中的每个项目都可以是一个向量,其中包含 1000 个指向我们希望能够访问的项目的指针。一个类可以处理这个功能。
**原始问题:**
正如一位智者所说:“有了指针,如果它只工作一次,那并不能保证你做对了。”
我有一堂课:
class A;
A 类在 std::list 中:
std::list<A> list_of_A;
要访问其中的项目,我正在使用:
std::list<A>::iterator iter = list_of_A.begin();
std::advance(iter, <an_unsigned_int>);
return *iter;
这似乎有效,但这样做是return *iter
正确的吗?我应该提到最后 3 行是在一个函数中,它返回一个const A&
。
我在 stackoverflow 上寻找答案,但找不到这个问题的副本,这让我感到惊讶。
列表>矢量,因为我将在列表中交换东西。