📅  最后修改于: 2023-12-03 15:39:14.785000             🧑  作者: Mango
在编写代码时,我们可能需要将向量中的元素移动到 unordered_set 中。在本文中,我们将探讨如何在 C++ 中实现此操作。
首先,我们需要定义一个向量和一个 unordered_set,以便在其中存储数据。
定义一个向量:
std::vector<int> vec = {1, 2, 3, 4, 5};
定义一个 unordered_set:
std::unordered_set<int> uset;
我们可以使用 std::move
将元素从向量移动到 unordered_set。如下所示:
for (auto&& v : vec) {
uset.insert(std::move(v));
}
在这个例子中,我们使用 auto&&
来遍历向量中的每个元素。当一个元素被移动到不同的容器时,它变得不再持有 vec
中原始的值。
如果需要,我们可以在将元素移动到 unordered_set 之前对它们进行修改。例如,以下代码使用平方替换了向量中的整数,并将它们移动到 unordered_set:
for (auto&& v : vec) {
v = v * v;
uset.insert(std::move(v));
}
注意,在移动元素之后,向量 vec
中的元素已被移动,变成了未初始化值。
#include <iostream>
#include <vector>
#include <unordered_set>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
std::unordered_set<int> uset;
for (auto&& v : vec) {
v = v * v;
uset.insert(std::move(v));
}
std::cout << "unordered_set: ";
for (auto&& u : uset) {
std::cout << u << " ";
}
std::cout << std::endl;
return 0;
}
输出结果:
unordered_set: 25 4 1 16 9
以上就是如何将元素从向量移动到 unordered_set 的介绍。