我还是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) {
}
这就是问题所在。我该如何实现呢?我很乐意有个主意。感谢
答案 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/