标签: c++ stl deque
有一个deque构造函数,它接受一对迭代器。我可以看到,当迭代器来自列表时,在GCC libstdc ++和llvm libc ++中,列表被扫描两次,第一次是在distance()计算期间,然后是复制列表元素时。
C ++中的一些基本内容是否会阻止优化?或者这是实施的缺点吗?
std::list<int> v = { 4, 3, 2, 1 }; std::deque<int> d(v.begin(), v.end());