C++ vector 查找结构体向量变量(Vectors, structs and find)
来源:互联网 发布:阿里数据分析平台 编辑:程序博客网 时间:2024/06/05 09:23
问
如果建立了结构体向量,如何查找结构体向量中某变量值所在的向量单元。简单地说,就是结构体向量中有ID和数值,如果根据查找ID来更改数值呢?
解
利用迭代器,根据ID的值找到迭代器的位置,然后利用迭代器索引修改数值。
C++实例
代码下载地址:
查找结构体向量变量(Vectors, structs and find)
#include <iostream>#include <algorithm>#include <boost/bind.hpp>struct Experience{ int id; int x; int y; int th;};int main() { std::cout << "Start ......" << std::endl; std::vector<Experience> exps; Experience exp; exp.id = 1; exp.x = 10; exps.push_back ( exp ); exp.id = 2; exp.x = 20; exps.push_back ( exp ); exp.id = 3; exp.x = 30; exps.push_back ( exp ); int exp_id = 3; std::cout << "exps[2].id:" <<exps[2].id<< ",exps[2].x:" <<exps[2].x<< std::endl; std::vector< Experience >::iterator it = std::find_if ( exps.begin (), exps.end (),boost::bind ( &Experience::id, _1 ) == exp_id ); std::cout << "exps[2].id:" <<exps[2].id<< ",exps[2].x:" <<exps[2].x<< std::endl; std::cout << "Done ......" << std::endl; return 0;}
运行结果
Start ......exps[2].id:3,exps[2].x:30Modify exps.x = 0, if exps.id == 3exps[2].id:3,exps[2].x:0Done ......
解释
建了三个结构体,然后将其推入到向量中,查看向量
id=3
的x的值30。利用迭代器查找”id==3”的结构体,然后利用迭代器将其置零。
1 0
- C++ vector 查找结构体向量变量(Vectors, structs and find)
- Rust - Arrays and Vectors | 数组和向量
- 版本向量(version vectors)
- STL vector find and sort vector的查找和排序
- Solidity 结构体Structs
- 学习下c++中的向量(Vectors)
- Vector::find、search查找
- 点和向量的转换 Transforming Points and Vectors
- Structs in C#(类和结构的区别)
- 支持向量机与支持向量回归(support vector machine and support vector regression)
- vector查找结构体实例find_if
- vector容器结构体类型查找
- anonymous structs匿名结构体
- C++ Vector STL find 查找
- vector 查找/查找和对比结构体元素值
- vector向量容器元素排序与查找
- Vector(向量容器)
- 向量(vector)
- 文章标题
- 【IMWeb训练营作业】实战vue练习之select 组件
- ARM指令集
- 解决 Navicat for Mysql连接mysql出现10038问题
- [IMWeb训练营作业2]select
- C++ vector 查找结构体向量变量(Vectors, structs and find)
- CCF NOI1037 个位数
- leetcode141. Linked List Cycle
- Webstorm创建Vue file.vue模板
- Maven添加远程仓库(六)
- HDU 2121:Ice_cream’s world II(不定根最小树形图)
- 工程管理器make
- 一起学react native实现简单购物车
- VLC 字幕中文乱码解决方法