我说了以下布尔向量:
v = [false ,true, false ,false ,true, false ,false ,true]
我想要另一个向量,其中包含元素为 true 的 v 向量的索引。
我有以下代码:
std::vector<int> nds; //contains the indices
for (const auto &elem : v)
{
auto idx = &elem - &v[0];
if (elem)
{
nds.push_back(idx);
}
}
以下内容在我的 MacBook 上似乎可以工作,但在 Linux 上会导致以下错误。
src/file.cpp:76:25: error: taking address of temporary [-fpermissive]
auto idx = &elem - &v[0];
^
有更好的方法来查找索引吗?
附注:这只是一段较长代码的摘录。