我有两个 vector
std::vector<int> markedToBeRead(7); // contains: 1,1,0,0,1,0,1
std::vector<float> myVec(7); // contains: 1,2,3,4,5,6,7
从 myVec 中获取这些元素的最佳方法是什么,其中 markedToBeRead
的相应索引的值为 1
。
如果不使用 for 循环,但使用 STL 方法,这是否可能?
std::vector<float> myResult; // contains: 1,2,5,7
谢谢!
最佳答案
很明显,这里更喜欢简单的 for 循环,而不是任何 STL 算法。
但作为概念的证明,人们可能会在此处采用 C++11 中的 STL::equals 和 lambda:
std::equal(myVec.begin(), myVec.end(), markedToBeRead.begin(), [&](float item, int mark)->bool {
if (mark)
myResult.push_back(item);
return true;
});
这可行,但看起来很丑。
关于c++ - 如何获取 vector 的那些元素,其中另一个 vector 在相应索引处具有 '1' s,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11098517/