自己的功能模板"插入" -Method(矢量)

时间:2016-01-13 10:10:52

标签: c++ vector insert

我还是C ++的初学者。我有以下问题:假设我有一个包含内容的字符串,我想将此内容复制到这样的矢量:

std::string s{"Professional"};
std::vector<char> v{};
v.insert(s.begin(),s.end());

我假设我的向量是空的,我可以用String的内容填充它。对于上面我想拥有一个自己的功能模板,如:

template<typename InputIterator> void insert(InputIterator first, InputIterator last) {

}

这就是问题所在。我该如何实现呢?我很乐意有个主意。感谢

1 个答案:

答案 0 :(得分:1)

您可以使用方法charVector编写自己的std::vector<char> insert来源:

struct charVector : std::vector<char>
{
    template<typename InputIterator>
    void insert(InputIterator first, InputIterator last)
    {
        assign( first, last );
    }
};

std::string s{"Professional"};
charVector v{};
v.insert( s.begin(), s.end() );

如果您喜欢将数据添加到charVector使用std::copy std::back_inserter#include <algorithm> // std::copy #include <iterator> // std::back_inserter struct charVector : std::vector<char> { template<typename InputIterator> void insert(InputIterator first, InputIterator last) { std::copy( first, last, std::back_inserter( *this ) ); } };

的末尾的方法
/modules/mod_login/tmpl/