c++ - "Insert"-方法( vector )的自有函数模板

标签 c++ vector insert

我仍然是 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::copystd::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/

相关文章:

C++ - 检查 cin 是否有错误

c++ - Qt 5 在用户输入时播放 wav 声音

unix - 将 header 插入文件

SQL插入选择查询

c++ - 有没有办法解决使用 break 语句的问题?

c++ - 在 C++ 中将 << 运算符重载到输出矩阵

r - 选择命名向量中的元素

c++ - 传递给对象时获取数组的长度

c++ - 在 Base* 数据结构中格式化和使用派生类的正确方法是什么?

mysql - 同一个 MySQL 表中的重复记录具有重复的键条目