我仍然是 C++ 的初学者。我有以下问题:假设我有一个包含内容的字符串,我想将此内容复制到这样的 vector 中:
std::string s{"Professional"};
std::vector<char> v{};
v.insert(s.begin(),s.end());
我假设我的 vector 是空的,我可以用字符串的内容填充它。对于以上我想有一个自己的功能模板,如:
template<typename InputIterator> void insert(InputIterator first, InputIterator last) {
}
问题就在这里。我应该如何实现?我会很高兴有一个想法。谢谢
最佳答案
你可以自己写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 ) );
}
};
关于c++ - "Insert"-方法( vector )的自有函数模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34763834/