C++ 向量指针

C++ 向量指针,c++,pointers,C++,Pointers,我有一个对象向量,它是指针,但当我打印出内容时,我会得到内存地址,所以我打算将向量复制到字符串向量,但复制、赋值或交换等方法似乎不起作用 std::vector<BmvMessage*> MsgName; //std::vector<BmvMessage> MsgNameCopy; //std::string* a; MsgName = retrieveMessageNameID(Msg).push_onto(MsgName); std::vector<BmvMes

我有一个对象向量,它是指针,但当我打印出内容时,我会得到内存地址,所以我打算将向量复制到字符串向量,但复制、赋值或交换等方法似乎不起作用

std::vector<BmvMessage*> MsgName;
//std::vector<BmvMessage> MsgNameCopy;
//std::string* a;
MsgName = retrieveMessageNameID(Msg).push_onto(MsgName);
std::vector<BmvMessage*>::iterator it;

for (it = MsgName.begin(); it != MsgName.end(); ++it) {
  DCS_LOG_DEBUG("it is not empty");
  MsgName.swap(MsgNameCopy);
}
std::vector MsgName;
//std::载体msgnamcopy;
//std::字符串*a;
MsgName=retrieveMessageNameID(Msg)。将_推到(MsgName);
std::vector::it迭代器;
for(it=MsgName.begin();it!=MsgName.end();+it){
DCS_LOG_DEBUG(“它不是空的”);
MsgName.swap(MsgNameCopy);
}

我做错了什么?

迭代器就像指针一样,所以“it”就像指向指针的指针——尊重它,你应该回到原来的指针

it // Is like a pointer to a BmvMessage* or BmvMessage**
*it // Is a BmvMessage*
**it // Is a BmvMessage

如果我写了DCS\u LOG\u DEBUG(“元素”),我有一个对象向量,这些对象是指针,但当我打印出内容时,我会得到内存地址--为什么在那句话中有一个but?指针存储一个内存地址,你希望它打印什么?是的,这是真的,我想当我尊重它的时候我应该重述它,它似乎不起作用,所以你有什么建议吗?你为什么要使用(原始)指针和容器?好的,我将尝试DCS_LOG_DEBUG(“元素”)你有一个重载操作符或者创建你自己的输出操作符,你有没有websight链接的例子?当然有。这看起来很完整哦,好的,所以只需创建重载方法并将DCS_LOG..print语句放在里面就可以了,谢谢你的帮助!