gpt4 book ai didi

c++ - 如何将参数传递给 std::vector::insert()?

转载 作者:行者123 更新时间:2023-11-30 05:35:57 26 4
gpt4 key购买 nike

我是类的新手,所以我不能将参数传递给 std::vector::insert():

//myclass.h
class myClass//: private std::vector<char>
{
private:
typedef char mytype;
typedef std::vector<mytype> vector;
vector Store;

...

/* iterators */
const vector::const_iterator begin() const
{
return Store.begin() ;
}
const vector::const_iterator end() const
{
return Store.end();
}
vector::iterator begin()
{
return Store.begin() ;
}
vector::iterator end()
{
return Store.end();
}
template<class Iter>
void insert(vector::const_iterator c, Iter a, Iter b)
{
Store.insert(c,a,b); //error
}

当我编译包含该 .h 文件的 .cpp 时出错。谁能帮帮我?提前致谢。

[Error] no matching function for call to 'std::vector::insert(std::vector::const_iterator&, __gnu_cxx::__normal_iterator >&, __gnu_cxx::__normal_iterator >&)'

最佳答案

我相信,您使用的是 C++11 之前的编译器。在 C++11 之前,vector::insert 将第一个迭代器作为非常量 - 而您的函数使用 const_iterator。

升级编译器或更改插入的签名以接受非常量迭代器。

关于c++ - 如何将参数传递给 std::vector::insert()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33680551/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com