Есть ли способ переместить unordered_map
значения в вектор? Все способы, которыми я смог найти значения копирования (как в моем примере) вместо использования чего-то похожего на std::move
.
Я бы не хотел копировать значения, чтобы сохранить уникальность shared_ptr
foo, которую позже я изменю на unique_ptr
.
class Class {
public:
std::shared_ptr <int> foo = std::shared_ptr <int> (new int (5));
};
int main() {
std::unordered_map <int, Class> mapOfObjects({
{1, Class()},
{2, Class()},
{3, Class()},
{4, Class()},
{5, Class()} });
std::vector <Class> someVector;
for (auto &object : mapOfObjects) {
someVector.push_back(object.second);
std::cout << "Is unique? " << ( someVector.back().foo.unique() ? "Yes." : "No.")
<< std::endl << std::endl;
}
}
Заранее благодарим за все полезные ответы.