std::list
안에있는 요소들의 순서가 순서대로 유지되는 것이 보장됩니까 (물론 정렬이나 무언가가 발생하지 않는 한)?표준 : : 목록 순서가 보장됩니까?
또한 잠재적 인 정의되지 않은 동작이있을 수 있습니까?
std::deque
등과 같은 컨테이너는 주문 안전하지만, std::deque
은 이중 연결이 아니라는 인상하에있었습니다.
std::list
안에있는 요소들의 순서가 순서대로 유지되는 것이 보장됩니까 (물론 정렬이나 무언가가 발생하지 않는 한)?표준 : : 목록 순서가 보장됩니까?
또한 잠재적 인 정의되지 않은 동작이있을 수 있습니까?
std::deque
등과 같은 컨테이너는 주문 안전하지만, std::deque
은 이중 연결이 아니라는 인상하에있었습니다.
예, 주문은 std::list
으로 보장됩니다. UB에서는 어떤 일이 일어날 수 있기 때문에 std :: list의 순서를 뒤섞을 수 있습니다 (생각할 것 같지는 않지만).
짧은 대답은 목록이 순서대로 맞지 않는다면 생각해야 할 가장 큰 이유는 프로그램의 버그입니다.
링크 된 목록의 std :: list 구현이 그 순서를 유지하지 않는다고 가정하게 만드는 이유는 무엇입니까? – DavidO
@DavidO - Nothing; 그것은 단지 생각이었습니다. 나는 그들이 그럴 줄 알았지 만, 다른 사람들이 내가 알지 못하는 것을 숨기고있는 뭔가가 있습니다. – Qix
글쎄,'std :: vector'와'std :: deque' (그리고 좋은 옛날 배열)처럼 그것은 시퀀스 컨테이너입니다. 라이브러리가 무작위로 요소를 재정렬 할 수 있다면 그 감각을 거의 잃을 것입니다. –