创建提升共享指针的向量
Creating a vector of boost shared pointers
我遇到了一个问题,想知道是否有人可以帮助我。
在我的一个班级(例如 class1(中,我有一个
typedef boost::shared_ptr <class-one-object>
typedef std::vector<class-one-object>
在另一个类(例如 class2(中,我需要再次创建这个向量,以便遍历这个
class-one-object
所以我尝试了以下内容
class1::ImportTableObject& table = configPtr->getTable();
std::vector<class1::class-one-object>::const_iterator* iter = table.begin();
这引发了以下编译错误:
cannot convret `__gnu_cxx::__normal_iterator<boost::shared_ptr<class1::class-one-object>*, std::vector<boost::shared_ptr<class1::class-one-object>,
std::alloctor<boost::shared_ptr<class1::class-one-object> > > to '__gnu_cxx::__normal_iterator<const class1::class-one-object*, std::vector<class1::class-one-object>
等等
等等谁能帮我?
提前谢谢你
begin
不返回指向迭代器的指针,而是返回迭代器。
std::vector<class1::class-one-object>::const_iterator iter = table.begin()
应该做这个伎俩。
从错误消息中可以得出结论,您基本上混合了容器:一个包含指向"类一对象"的共享指针,另一个包含"类一对象"。看起来这应该有效:
std::vector<boost::shared_ptr<class1::class-one-object> >::const_iterator iter = table.begin();
但您可能希望实现以下目标:
std::vector<class1::class-one-object> vec;
const class1::class-one-object* ptr = (*iter).get();
if (ptr)
vec.push_back(*ptr);
此致敬意。
相关文章:
- 函数向量_指针有不同的原型,我可以构建一个吗
- 有没有一种"cleaner"的方法可以在指向基的指针向量中找到派生类的第一个实例?
- 使用向量类的c++指针
- 如何使用C++初始化向量;脚本化值不是数组、指针或矢量错误
- 如何更改唯一指针向量的可见性
- C++ 独特指针练习的向量
- C 中的向量指针的清晰图
- 当向量位于内部类中时,如何删除指向对象的向量指针
- std::向量指针
- 指向结构体的向量指针错误
- 删除指向指针的向量指针时出错
- 映射不同类型的向量指针
- 在c++中传递向量指针
- 虚拟类的向量:指针是干净的方法吗
- 如何从另一个向量/对象集构造新的向量/指针集
- 模型视图控制器- c++向量指针,太多的传递
- 为什么向量指针占用这么多内存?
- 删除条目向量指针的静态映射c++
- 复向量指针
- c++数组向量指针的初始化