c++ - 如何使用指向结构体 vector 的迭代器 C++?

标签 c++ vector struct

我需要有关我的代码的帮助。我不明白如何使用返回的指针来访问存储在 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_eachrange-based for loop检查当前元素以查看它是否符合您的条件。

关于c++ - 如何使用指向结构体 vector 的迭代器 C++?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51652071/

相关文章:

c++ - 如何更改我的错误处理方法

matlab - Matlab 中两点之间的距离

c++ - 使用复制算法在 C++ 中打印 vector 的格式问题

检查 C 中 char 数组的内容

c - 从指针分配结构的成员值

c++ - std::set 及其 front_insert_iterator

c++ - 在 Clang 上禁用 "deletion of copy constructor when move constructor is avaliable"

performance - 如何在Matlab中向量化 'for'循环

C - 结构的名称是什么

c++ - C++ 类中的成功回调 Emscripten FETCH API