zoukankan      html  css  js  c++  java
  • 关于OpenCASCADE数组序列的起始值

    C/C++的数组是从0开始计算的,5个值的数组则下标会对应 0, 1, 2, 3, 4。

    在数学上可能不这么数,我所知道的 Mathematica 内的 List 是从 1 开始作为下标的。

    OpenCASCADE对数组下标的设计早期更靠近数学的理念,从1开始,这明显与C/C++语言标准不同,所以对每一个数组都得重新设计,然后为了兼容又给数组类定义了一个 Lower下标,Upper下标;数组下标应该是从 Lower 至 Upper (边界都取值)。

    兼容Lower,Upper 下标使得在使用时得时时刻刻提神,而且可以看到里边有很多地方的代码,会假定数组是从1开始算下标的,看样子很难全部没有修改过来,所以如果将 Lower 设定为0 开始计数,虽然做到了与C/C++的等同,但使用起来就等同了埋地雷,指不定什么时候就给你来一个指针越界,要不要试试

    话又说回来,真不习惯数组从1开始计算下标;画蛇添足地搞个Lower, Upper下标,弄出不必要的复杂度,感觉这是OpenCASCADE不够贴近语言使用,鸡肋的设计。

  • 相关阅读:
    抽象类与接口
    二叉树的镜像
    树的子结构
    合并两个排序的链表
    反转链表
    链表中倒数第k个结点
    调整数组顺序使奇数位于偶数前面
    230. Kth Smallest Element in a BST
    98. Validate Binary Search Tree
    94. Binary Tree Inorder Traversal(二叉树中序遍历)
  • 原文地址:https://www.cnblogs.com/bitbybit3d/p/11946595.html
Copyright © 2011-2022 走看看