C++ std::列表顺序有保证吗?

C++ std::列表顺序有保证吗?,c++,stl,containers,C++,Stl,Containers,std::list中元素的顺序是否保证保持有序(当然,除非发生排序或其他情况) 此外,列表中是否存在任何潜在的未定义行为,可能会把它们弄得一团糟 我的印象是,std::deque等容器是订单安全的,但唉std::deque不是双链接的。是的,订单是有保证的。由于UB可能发生任何事情,因此可能会混淆std::list的顺序(尽管我认为不太可能) 简而言之,如果列表的顺序不符合您认为的顺序,那么最有可能的原因是程序中存在错误。是什么让您认为链表的std::list实现没有保持其顺序?@DavidO-

std::list
中元素的顺序是否保证保持有序(当然,除非发生排序或其他情况)

此外,列表中是否存在任何潜在的未定义行为,可能会把它们弄得一团糟


我的印象是,
std::deque
等容器是订单安全的,但唉
std::deque
不是双链接的。

是的,订单是有保证的。由于UB可能发生任何事情,因此可能会混淆std::list的顺序(尽管我认为不太可能)


简而言之,如果列表的顺序不符合您认为的顺序,那么最有可能的原因是程序中存在错误。

是什么让您认为链表的std::list实现没有保持其顺序?@DavidO-Nothing;这只是一个想法。我想是的,但通常情况下,有些隐藏的东西别人知道我不知道。比如
std::vector
std::deque
(以及任何好的旧数组)它是一个序列容器。如果库可以随机地重新排序元素,它将失去它的意义。这几乎是唯一的原因。酷,我也这么认为。只是想确认一下;我在网上找不到任何关于它的警告,但这并不意味着它不可能发生。也许我应该在你的逻辑中有错误,而不是一般的错误。