c++ - 如何创建一种变量的 vector ?

标签 c++ templates vector iterator

所以我有一个模板函数(?不确定它叫那个。以"template"开头并且是一个函数) vector ,我想保存一些数据。问题是——数据可能由整数组成,可能由 float 组成,可能由其他 vector 组成——我只有一个指向该类型变量的迭代器。我可以为该类型创建一个 vector 吗?就像是 “std::vector” 还是类似的?

更新。

template<class InputIterator, class UnaryPredicate>
void partial_sort (InputIterator first, InputIterator last, UnaryPredicate pred){
    std::vector<????> to_sort;

我需要 vector “to_sort”来保存被排序的 vector 所保存的数据,但我所拥有的只是指向第一个和最后一个元素的迭代器。

最佳答案

template <class It>
void myFunction (It b, It e) {
   auto vec = std::vector<typename std::iterator_traits<It>::value_type> { b, e };
   // now vec is filled with copies of the values between b and e
}

关于c++ - 如何创建一种变量的 vector ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33693375/

相关文章:

c++ - itk::SmartPointer 是如何转换为 bool 的?

c++ - 在Z3中对整数位添加约束

c++ - 关于使用 QTabWidget 'addTab' 函数的快速问题

c++ - 如何在 C++ 中使用映射实现模板的返回类型查找?

c++ - std::vector 的异常行为

python - 在嵌套列表中查找和分组相同的值(浮点向量)

c++ - 用户定义的限定符

c++ - 循环模板

templates - 如何获得网站切换器而不是商店切换器?

c++ - 具有在编译时定义的不同类型的 vector