首页 > 解决方案 > push_back vector的Iterator时不使用构造函数是否安全向量?

问题描述

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

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,那么该值是否保持安全?

标签: c++vectoriterator

解决方案


推荐阅读