gpt4 book ai didi

c++ - 迭代指针的 std::vector 时出错

转载 作者:太空宇宙 更新时间:2023-11-03 10:33:10 25 4
gpt4 key购买 nike

我需要复制一个包含指向某个类的指针的 std::vector。函数是:

Clone::Clone( const Clone &source )
{
m_pDerivate.clear();

std::vector<Derivate *>::const_iterator it;
it = source.m_pDerivate.begin();
for (it = source.m_pDerivate.begin(); it != source.m_pDerivate.end(); ++it) {
m_pDerivate.push_back(new Derivate(it));
}
}

Derivate 构造函数是:

Derivate::Derivate( const Derivate &source )
{
_y = source._y;
_m = _strdup(source._m);
}

但是当我编译时,出现以下错误...

 cannot convert parameter 1 from 'std::_Vector_const_iterator<_Myvec>' to 'const Derivate &'

...在行中:

m_pDerivate.push_back(new Derivate(it));

如果我将行更改为...

m_pDerivate.push_back(new Derivate((const Derivate &)(*it)));

...编译正常,但 Derivate 构造函数未正确接收数据。

你能帮帮我吗?

提前致谢。

最佳答案

您需要取消引用迭代器和指针:

  • *it 是类型 Derivate*
  • **itDerivate 类型

改变:

m_pDerivate.push_back(new Derivate(it));

到:

m_pDerivate.push_back(new Derivate(**it));

关于c++ - 迭代指针的 std::vector 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10634597/

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