容器踩坑

std::distance引出迭代器使用问题

今天使用std::distance颠倒first和last参数,导致死循环。distance实际上是根据trait来计算distance,如果是forward 类型,使用还是使用++和!=方式,而颠倒参数导致!=永远不会成立


关于vartype

项目中的配置项读取时通过vartype的,vartype支持很多隐式类型隐式转换,在转set、map时发现数据项的次序发生改变。最后发现开始使用配置项初始化时使用vec,而我在优化时使用set、map来加快查找,但是数据项发生转型时次序发生改变。

关于避免引入依赖关系

由于枚举的引入会导致枚举与对应文件的依赖关系,尤其是在h文件中。直接在cpp文件中用匿名namespace封装使用enum的全局函数,文件内使用。这样避免了不必要的依赖关系。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 本开发规范基于《阿里巴巴Java开发手册终极版》修改,并集成我们自己的项目开发规范,整合而成。 为表示对阿里...
    4ea0af17fd67阅读 5,677评论 0 5
  • 编程规约 命名风格 1.代码命名不能以下划线或者美元符号开头或者结尾2.代码命名不能以中文拼音或者中文拼音与英文混...
    试试看呗Beta阅读 5,593评论 0 1
  • 编程规约 命名风格 1.代码命名不能以下划线或者美元符号开头或者结尾2.代码命名不能以中文拼音或者中文拼音与英文混...
    cg302阅读 1,111评论 0 1
  • 数据格式详解 输入输出函数详解 字符串处理函数详解 内存函数详解 类详解 数据格式详解 2^8=256(同样是一个...
    我在东北玩泥巴_阅读 2,022评论 0 0
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 8,607评论 28 53