C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c如何在结构向量的一个字段上创建迭代器大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个所有原始类型的结构,如下所示:

struct record {
    int field1;
    double field2;
}

我有这个结构的实例向量,如下所示:

vector<record> records;

是否有可能/什么是创建将迭代field1的向量< int> :: iterator的最佳方法
如果我使用数组记录记录[n]怎么样?我需要一些看起来像vector< int> :: iterator的东西.

编辑:我需要的东西是一个矢量< int> :: iterator.

解决方法

你运气不好

vector< int> :: iterator不是polymorphic1.没有地方可以进入并更改指针步长. vector< int> :: iterator仅迭代一系列连续的int对象,并且不会连续存储int对象.

这就是为什么所有C标准算法都可以接受任何类型的迭代器.如果使函数成为接受任意迭代器类型的模板,则可以像使用Snps编写的那样使用迭代器适配器.

1Polymorphism相对于指针算法来说很慢,如果它没有与普通数组相似的性能,没有人会使用std :: vector

大佬总结

以上是大佬教程为你收集整理的c如何在结构向量的一个字段上创建迭代器全部内容,希望文章能够帮你解决c如何在结构向量的一个字段上创建迭代器所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。