![]() |
1
4
退一步来说,请记住,您使用的迭代器使用的是自己的算法,而不是容器。所以,如果你有这个:
现在你陷入了这种境地:
请考虑使用迭代器:
所以现在你指的是范围而不是容器:
这限制了不必要的容器和分配的数量。 有了这些,在C++11中您可以做到这一点(其余部分相同):
如果
|
![]() |
2
1
std::move 如果您可以访问c++11编译器和可移动对象,则可以做得更好。 请注意,您仍然需要从第一个向量中删除它们。 |
![]() |
3
0
还有其他几种方法可以执行此任务,例如使用复制算法和插入迭代器。 但是在算法上,由于向量容器的性质,这些动作的复杂性将始终为O(n)。Vector不是一个允许在O(1)(恒定)时间内将大块数据从一个容器移动到另一个容器的列表。根据特定的STL实现,一种方式可能比另一种方式好10-20%,但不太可能超过这个。 若容器的数据类型允许移动语义,并且您有这些可用的语言功能,这肯定会有所帮助。但这更多的是关于处理容器中的数据对象,而不是容器本身。 |
![]() |
Xue Fang · SQL-只使用一个请求插入多个条目而不重复 6 年前 |
![]() |
CalcGuy · MySQL,Insert语句,值为select语句 6 年前 |
![]() |
curiousgeorge · 在具有单独更新列的重复密钥更新批上插入 6 年前 |
![]() |
Shyama Sonti · 从两条备用sql语句写入临时表 6 年前 |
|
unignore · 将列表初始化对插入std::map 6 年前 |
![]() |
iusmar · 扩展Sitecore插入链接功能 6 年前 |
![]() |
Dharma · Swift SQLite数据库如何插入日期字段 6 年前 |