我有一个名为 mask 的 uchar 数组。它包含 0 或 1。
uchar mask
我有一个STL vector
vector<MyClass> vec
mask 和 vec 的大小相同。
从包含掩码为 1 的地方的原始内容的 vec 形成子 vector 的最佳方法是什么
最佳答案
vector<MyClass> vec2;
vec2.resize(vec.size());
for (int i = 0; i < vec.size(); ++i) {
if (mask[i])
vec2[i] = vec[i];
}
越简单越好。 vec2
将在掩码为 0
的位置包含类的默认构造对象,因此您需要一些方法来区分它们。
关于c++ - 用 uchar 数组屏蔽 C++ vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26542440/