Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
简单的问题:
vector<int> vi; vi.reserve(1984); vi[84] = 1900;
这合法吗?请注意,我们在这里谈论的不是某个 Widget,它的 dtor 可能会导致混乱,因为它认为位置 84 的元素正在被破坏,而在 pos 84 处只有随机(或者可能是零-d)内存。
不,这是不合法的。仅允许0to访问元素size()-1(当vector不为空时)。如果为空,则不允许访问不存在的元素。
0
size()-1
vector
因为int这没有多大意义,但对于 UDTT来说,它是能够容纳 a T(这就是提供的)的内存块与仅当它在 to 的有效范围内时才存在的reserve()实际实例之间的差异.T0size()-1
int
T
reserve()