之前我问过这个问题 ,关于如何建立我自己的集合操作类,例如交集,联合等。
我选择作为我的解决方案的答案推荐了已经实现了这些操作的算法库 。 我想让这些操作适用于我的数据类型,如下所示:
struct my_data_type { int label; vector x; vector y; string str; };
所以有人建议我把这些东西包含在我的struct(或类)中:
我对C / C ++比较陌生,所以有人可以为我在这里定义的示例结构提供这三个东西吗? 那么如何使用我class上的一个操作(让我们说set_intersection(...)
?
谢谢。
在这种情况下,编译器提供了所有三种的合适实现 – 没有必要写任何额外的东西,这样做将是糟糕的风格,恕我直言。 但是,您可能需要的是一个构造函数,它接受参数,构造一个正确初始化的对象,以及一个operator <()的实现,以便可以比较您的结构。
在不知道你的结构是什么的情况下,很难提供这些,但假设你的集合成员将拥有独特的标签,这就是你需要的东西:
struct my_data_type { int label; vector x; vector y; string str; my_data_type( int l, const string & s ) : label( l ), str( s ) {} bool operator<( const my_data_type & t ) const { return label < t.label; } };
以上就是c/c++开发分享在任意数据类型上使用库相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/541702.html