【发布时间】:2020-09-24 20:53:01
【问题描述】:
我基本上想要
template <typename Container, typename T>
void copy(Container<T> &A, const Container<T> &B)
{
(copy contents from B to A) ...
}
但是,afaik,它不能这样做。使用方面,它会从(示例)vector<int> A, B 复制内容,但也适用于 list<float> A, B,例如。
因此,单个函数将适用于不同类型的容器以及它们各自容器的不同数据类型。
【问题讨论】:
-
旁注:如果你创建一个通用迭代器接口,你可以拥有一个不关心容器是什么的函数。 See C++'s own
std::copy举个例子,包括一些你可以兴高采烈地窃取想法的示例实现。 -
旁注:在 C++ 标准库中,参数的顺序是相反的,所以你的函数很可能会引起用户的一些混淆。我建议从第一个复制到第二个。
A -> B. -
@EthanR,我的推销会改变函数的外观,类似于
void copy(iterator from_start, iterator from_end, iterator to_start)
标签: c++ templates containers