c如何在结构向量的一个字段上创建迭代器
发布时间:2020-12-16 09:55:27 所属栏目:百科 来源:网络整理
导读:我有一个所有原始类型的结构,如下所示: struct record { int field1; double field2;} 我有这个结构的实例向量,如下所示: vectorrecord records; 是否有可能/什么是创建将迭代field1的向量 int :: iterator的最佳方法? 如果我使用数组记录记录[n]怎么样?
我有一个所有原始类型的结构,如下所示:
struct record { int field1; double field2; } 我有这个结构的实例向量,如下所示: vector<record> records; 是否有可能/什么是创建将迭代field1的向量< int> :: iterator的最佳方法? 编辑:我需要的东西是一个矢量< int> :: iterator. 解决方法
你运气不好
vector< int> :: iterator不是polymorphic1.没有地方可以进入并更改指针步长. vector< int> :: iterator仅迭代一系列连续的int对象,并且不会连续存储int对象. 这就是为什么所有C标准算法都可以接受任何类型的迭代器.如果使函数成为接受任意迭代器类型的模板,则可以像使用Snps编写的那样使用迭代器适配器. 1Polymorphism相对于指针算法来说很慢,如果它没有与普通数组相似的性能,没有人会使用std :: vector (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |