我需要有关我的代码
的帮助。我不明白如何使用返回的指针来访问存储在 vector 中的结构中的元素:
struct receptionEvents
{
int chFreqIndex; //0
int chSFIndex; //1
simtime_t endReceptionTime ;
double SNR; //2
bool collidedFlag; //0= false(Not Corrupted) 1=Corrupted
};
std::vector<receptionEvents> buffRxEvents;
现在在主函数中,我尝试使用以下行查找与某个 chFreqIndex
匹配的名为 receptionEvents
的所有结构:
int chFreqIndexCheck == 4;
auto vpit = find_if( buffRxEvents.begin(), buffRxEvents.end(), [&]
(receptionEvents const & m) { return m.chFreqIndex == chFreqIndexCheck;} );
现在我的问题是如何使用 vpit 迭代器迭代 vector 中所有找到的条目以及如何访问每个条目的数据变量。请问有人可以帮忙吗?
最佳答案
std::find
family of functions返回一个指向单个元素的迭代器(如果没有找到,则返回end
)。
如果您想获取符合您条件的所有元素,那么您可以使用 std::copy_if
复制到新容器(可能需要 std::back_inserter
的帮助)。
您当然可以拥有自己的循环,多次调用 std::find_if
并传递前一个 vpit
加一作为搜索范围的开头。
或者使用std::for_each
或 range-based for
loop检查当前元素以查看它是否符合您的条件。
关于c++ - 如何使用指向结构体 vector 的迭代器 C++?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51652071/