vector 查找/查找和对比结构体元素值

  

#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
using namespace std;
 
typedef struct
{
    string str1;
    string str2;
    string str3;
}TASK_INFO_STRU;
 
bool findx(TASK_INFO_STRU &task)
{
    return task.str2 == "task_two";
}
 
int main()
{
    vector<TASK_INFO_STRU> task_vector;
    vector<TASK_INFO_STRU>::iterator iter;
 
    TASK_INFO_STRU task;
 
    task.str1 = "1";
    task.str2 = "task_one";
    task.str3 = "fine";
    task_vector.push_back(task);
 
    task.str1 = "2";
    task.str2 = "task_two";
    task.str3 = "fine";
    task_vector.push_back(task);
 
    iter = find_if(task_vector.begin(), task_vector.end(), findx);
    if (iter != task_vector.end())
    {
        cout << iter->str2 << endl;
        task_vector.erase(iter);
    }
 
    iter = find_if(task_vector.begin(), task_vector.end(), findx);
    if (iter != task_vector.end())
    {
        cout << iter->str2 << endl;
    }
 
    return 0;
}
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>#include <iostream>     // std::cout
#include <algorithm>    // std::find
#include <vector>       // std::vector
bool IsOdd (int i) {
  return ((i%2)==1);
}
int main()
{
    int p[] = {0, 1, 2, 3, 4, 5};
    std::vector<int> myvector( p, p + 6 );
    std::vector<int>::iterator it;
    /** @brief find() example */
    // iterator to vector element:
    it = find( myvector.begin(), myvector.end(), 3 );
    if( it != myvector.end() ) // finded
    {
        std::cout << "The element 3 is found." << '\n';
        // now *it is 3. it is a iterator to int.
        ++it;
        std::cout << "The element following 3 is " << *it << '\n';
    }
    /** @brief find_if() example */
    // iterator to vector element matching some condition.
    it = std::find_if (myvector.begin(), myvector.end(), IsOdd);
    if( it != myvector.end() ) // finded
    {
        std::cout << "The first odd value is " << *it << '\n';
    }
    return 0;
}
find(first, last, val) 查找值为val的元素,返回迭代器
http://www.cplusplus.com/reference/algorithm/find/
find_if(first,last, pred) 查找符合某个条件的元素,返回迭代器
http://www.cplusplus.com/reference/algorithm/find_if/

  

posted @   方东信  阅读(2626)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示