gpt4 book ai didi

c++ - 将指向对象的指针保存在循环中的 Vector 中

转载 作者:太空宇宙 更新时间:2023-11-04 15:22:27 25 4
gpt4 key购买 nike

是否可以在循环内的 vector 中保存指向对象的指针?

例如:

rpc::session* session=NULL;

//Find Sessions with same UserID, Remove if > 1
for(std::vector<rpc::session>::iterator it = session_manager::sessions.begin(); it != session_manager::sessions.end();) {
if(it->userid == userid){
if(session == NULL) {
*session = *it;
++it;
} else {
it = session_manager::sessions.erase(it);
}
} else {
++it;
}
}

代码已编译,但一旦到达 *session = *it,它就会因访问冲突而崩溃。

最佳答案

因为您没有将 session 的地址分配给您的 session 变量,并且看到您的 vector 正在存储 session 对象而不是指针,所以您需要分配变量到指针的地址。

session = &(*it);

这会将 *it 中的地址分配给 session

关于c++ - 将指向对象的指针保存在循环中的 Vector 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15764562/

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