【发布时间】:2014-12-30 21:18:09
【问题描述】:
我不确定我能找到的答案是否是满足我需要的最简单方法。我知道如何修改为我的问题的完整解决方案的简单模板将是完成以下操作的代码:
将两个迭代器作为输入,指向包含值类型 T 的事物的可迭代容器(向量、列表...)的开头和结尾。
返回一个
std::vector<T>,其中包含输入容器的逐个元素副本,按从头到尾迭代输入容器所完成的任何顺序。
一些不起作用的东西如下:
template<typename Iterator, typename T>
std::vector<T> dumb_copy(Iterator first, Iterator last) { ... }
问题是我需要编译器以某种方式检查我是否获得了指向 T 类型的迭代器。
我目前正在学习 C++,并在实践中编写我能想到的某些算法的最通用实现,因此我想从一开始就获得最佳实践。如果有一种使用 C++11 结构的简单方法可以做到这一点,那对我来说很好。
【问题讨论】:
-
为什么需要这个?你不能只从两个迭代器构造向量吗? BTW 标准库迭代器定义
value_type,它给你T。 -
我认为我需要这个,因为我还没有深入到 Stroustrup...