![]() |
1
11
这是容器/迭代器/算法范例工作方式的一个必要功能。该模型的基本概念如下:
因此,算法作用于迭代器,迭代器表示某个值序列中的位置,通常由容器提供。 问题是从容器中移除一个项目不符合这种模式。从容器中移除元素不是对“值序列”的操作;它从根本上 更改 序列本身的性质。 也就是说,“删除”最终以 集装箱作业 ,而不是迭代器操作。如果算法只作用于迭代器,那么没有一个纯算法能够真正 去除 元素。迭代程序不知道该怎么做。只作用于迭代器的算法可以在序列中移动值,但它们不能改变序列的性质,从而使“删除”的值不再存在。
但是,虽然元素的移除是一个容器操作。。。这不是价值
不可知论者
活动
除非到了真正将它们从容器中移除的时候。从上述范式的角度来看,它本质上是两个独立的操作:一个是算法,然后是容器操作。
尽管如此,C++20确实给出了
a number of containers non-member
它有很多用途。多次移除是显而易见的。您可以执行一系列移除操作,只要将新的结束迭代器传递给后续的每次移除(这样就不会有任何操作检查已移除的元素)。你可以做一个合适的容器
还应该注意的是,C++20
此外,并非所有容器
可以
擦除元件。
|
![]() |
2
6
标准库中的许多算法都在通用迭代器上运行,而这些迭代器不能用于删除元素。
|
![]() |
AstralHex · 矩阵乘法代码工作不正常 5 月前 |
![]() |
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 6 月前 |
![]() |
Die4Toast · 递归调用成员箭头运算符-> 6 月前 |
![]() |
Anka Hanım · 关于结构和动态数组地址的问题 6 月前 |