gpt4 book ai didi

c++ - 使用 front_inserter 而不是 back_inserter

转载 作者:搜寻专家 更新时间:2023-10-30 23:59:17 24 4
gpt4 key购买 nike

伙计们!我试图了解迭代器的工作,所以在下面的代码中,是否可以在不更改基础数据(结构)的情况下将 back_inserter 更改为 front_inserter。请你解释一下为什么。如果改变是可能的,考虑它的关键思想。

int a1[] = { 0, 1, 2, 3, 4, 5, 6 };
int a2[] = { 1, 4, 5 };
std::vector<int> a3;
int a4[] = { 0, 2, 3, 6 };
std::set_difference(a1, a1 + 7, a2, a2 + 3, std::back_inserter(a3));
assert(std::equal(a3.begin(), a3.end(), a4));

谢谢大家!

最佳答案

插入迭代器只是迭代器的一种实现,它使用标准机制将某些内容插入到集合中。对于 back_inserter,插入是通过调用容器上的 push_back() 方法完成的。因此,为了使用 back_inserter,容器必须实现 push_back()

同样,使用front_inserter 集合必须实现push_front()vector does not .因此,您不能在 vector 上使用 front_inserter

listdeque 都实现了 push_front,所以如果您要使用其中之一而不是 vector,您可以使用 front_inserter

关于c++ - 使用 front_inserter 而不是 back_inserter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16926575/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com