为什么模板<class inputit =“”> deque :: deque(InputIt first,InputIt last,const Allocator&amp; alloc = Allocator())次优?

时间:2018-03-24 08:24:18

标签: 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());

0 个答案:

没有答案