Can a C++;对象是否存储在最高内存位置? 是内存的最高位置(可能是代码>(空洞*)(STD:UnpTrtut)-1 < /C>)一个存储C++对象的有效地址? VECT。它们在iffvect.empty()时相等

Can a C++;对象是否存储在最高内存位置? 是内存的最高位置(可能是代码>(空洞*)(STD:UnpTrtut)-1 < /C>)一个存储C++对象的有效地址? VECT。它们在iffvect.empty()时相等,c++,arrays,pointers,object,byte,C++,Arrays,Pointers,Object,Byte,(void*)(uintptr_t)-1(通常与(void*)(size_t)-1相同)指向虚拟内存的最大可寻址字节。根据体系结构和环境的不同,它可以是有效的内存位置,也可以是无效的内存位置 向量的最后一个元素(*(vect.end()-1))可以位于最大的虚拟内存地址上。vect.end()永远不会小于vect.begin()。它们在iffvect.empty()时相等 (void*)(uintptr_t)-1(通常与(void*)(size_t)-1相同)指向虚拟内存的最大可寻址字节。根据体

(void*)(uintptr_t)-1
(通常与
(void*)(size_t)-1
相同)指向虚拟内存的最大可寻址字节。根据体系结构和环境的不同,它可以是有效的内存位置,也可以是无效的内存位置

向量的最后一个元素(
*(vect.end()-1)
)可以位于最大的虚拟内存地址上。

vect.end()
永远不会小于
vect.begin()
。它们在iff
vect.empty()时相等

(void*)(uintptr_t)-1
(通常与
(void*)(size_t)-1
相同)指向虚拟内存的最大可寻址字节。根据体系结构和环境的不同,它可以是有效的内存位置,也可以是无效的内存位置


向量的最后一个元素(
*(vect.end()-1)
)可以位于最大的虚拟内存地址上。

绝对不能保证地址-1无效。但是,它是可能的最高地址


当然,迭代器与有效内存地址或
size\t
的值没有任何关系。仅仅是使用
操作符以一种合理的方式进行比较,绝对不能保证地址-1是无效的。但是,它是可能的最高地址



当然,迭代器与有效内存地址或
size\t
的值没有任何关系。只需使用
操作符
以一种合理的方式进行比较。begin()
end()
是迭代器,它们与
大小无关“调用重载函数
vector::iterator::operator这对于
vector
来说是一个不同于其他容器的问题;向量要求元素存储在连续内存中,而其他元素则不需要t@MattMcNabb这是一个很好的观点,谢谢。
size\u t max((size\u t)-1)
是一个内存位置,而不是一个类型为
size\u t
且初始值可能不相关的对象?类型为
size\u t
的值是一个整数值,而不是指针或地址。
.begin()
.end()
是迭代器,它们与
size\u t
无关。“小于”表示“调用重载函数
vector::iterator::operator这对于
vector
来说是一个不同于其他容器的问题;向量要求元素存储在连续内存中,而其他元素则不需要t@MattMcNabb这是一个很好的观点,谢谢。
size\u t max((size\u t)-1)
是一个内存位置,而不是一个类型为
size\u t
且初始值可能不相关的对象?
size\t
类型的值是一个整数值,而不是指针或地址。那么向量的最后一个元素是否永远不会位于最高内存地址中呢?@jayjay正如您所知,
.end()
不会指向
向量的最后一个元素,它指向
向量的末尾:你确定它指向那里吗?保证在哪里?
size\u t
不保证索引所有内存,
uintptpr\u t
size\u t
仅用于将所有可能的字节索引存储到每个对象中,因此可以小得多。关于
(void*)(uintptr\u t)-1
的语句假设地址是无符号的。就语言而言,地址没有符号,只是因为它们不是整数。那么向量的最后一个元素是否永远不会位于最高内存地址中呢?@jayjay正如您所知,
。end()
不会指向
向量中的最后一个元素,它指向
向量的末尾:你确定它指向那里吗?保证在哪里?
size\u t
不保证索引所有内存,
uintptpr\u t
size\u t
仅用于将所有可能的字节索引存储到每个对象中,因此可以小得多。关于
(void*)(uintptr\u t)-1
的语句假设地址是无符号的。就语言而言,地址没有符号性,只是因为它们不是整数。你确定任何旧的迭代器都
比不上可比较的
?好吧,从技术上讲,它们没有,但当它们不是时,这就有点不现实了……除了RandomAccessIterator
之外,所有迭代器都是可比较的,但这并不意味着没有用处。你确定任何旧的迭代器都比不上可比较的
?好吧,从技术上讲,它们没有,但当它们不是时,这是不现实的。除了RandomAccessIterator
之外,所有的迭代器都只是
相等可比较的,这并不意味着它没有用处。