微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当将 vector<class> 的 Iterator 推回到 vector 时,不使用构造函数是否安全?

如何解决当将 vector<class> 的 Iterator 推回到 vector 时,不使用构造函数是否安全?

首先,两者都是没有错误代码

1.

std::vector<HttpConfigLocation> m_postLocation;
std::vector<HttpConfigLocation> location_block = this->m_server_block.get_m_location_block();
std::vector<HttpConfigLocation>::const_iterator location_iter = location_block.begin();

this->m_postLocation.push_back(*location_iter);
std::vector<HttpConfigLocation> m_postLocation;
std::vector<HttpConfigLocation> location_block = this->m_server_block.get_m_location_block();
std::vector<HttpConfigLocation>::const_iterator location_iter = location_block.begin();

this->m_postLocation.push_back(HttpConfigLocation(*location_iter));

在vector的push_back的运动中,指针无法移动,所以遇到了emplace的背景。所以,我必须用构造函数创建它,但我有一个问题。如果我只是把迭代器作为push_back,这个值是否保持安全?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。