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不够贴近语言使用,鸡肋的设计。

关于OpenCASCADE数组序列的起始值的更多相关文章

  1. 【编程题目】有两个序列 a,b,大小都为 n,序列元素的值任意整数,无序;(需要回头仔细研究)

    32.(数组.规划)有两个序列 a,b,大小都为 n,序列元素的值任意整数,无序:要求:通过交换 a,b 中的元素,使[序列 a 元素的和]与[序列 b 元素的和]之间的差最小.例如: var a=[ ...

  2. MySQL自增ID 起始值 修改方法

    在mysql中很多朋友都认为字段为AUTO_INCREMENT类型自增ID值是无法修改,其实这样理解是错误的,下面介绍mysql自增ID的起始值修改与设置方法. 通常的设置自增字段的方法: 创建表格时 ...

  3. Java数组,去掉重复值、增加、删除数组元素

    import java.util.List; import java.util.ArrayList; import java.util.Set; import java.util.HashSet; p ...

  4. c# 获取数组中最大数的值

    求数组中最大的数的值:1.数组的max函数: class Program { static void Main(string[] args) { ,,,,,,,,,}; int max= GetMax ...

  5. django - 修改 自增长id,起始值

    常常你会遇到这样的情况,需要自增长的起始值是 0,再次从 0开始. 两个选择: 1. drop table_name; django重新建表. 2. ALTER TABLE table_name AU ...

  6. 修改MySQL的递增的起始值

    在mysql中,有时候需要把递增的值初始化为1(你也可以修改成其它起始值): alter table table_name auto_increment=; 不要设置为0......

  7. bit-map牛刀小试:数组test[X]的值所有在区间[1, 8000]中, 现要输出test中反复的数。要求:1. 不能改变原数组; 2.时间复杂度为O(X);3.除test外空间不超过1KB

    先来看看这个题目:数组test[X]的值所有在区间[1, 8000]中. 现要输出test中反复的数.要求:1. 不能改变原数组; 2.时间复杂度为O(X);3.除test外空间不超过1KB. 好, ...

  8. jst通用删除数组中重复的值和删除字符串中重复的字符

    以下内容属于个人原创,转载请注明出处,非常感谢! 删除数组中重复的值或者删除字符串重复的字符,是我们前端开发人员碰到很多这样的场景.还有求职者在被面试时也会碰到这样的问题!比如:问删除字符串重复的字符 ...

  9. PHP二位数组按照数组的某个字段值排序

    不多废话 直接代码 /** * @name 排序 按照数组的某个字段值排序 * @param $array 排序数组 $field 排序字段 $direction 排序顺序 * @author wan ...

随机推荐

  1. 用python重新定义【2019十大网络流行语】

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:朱小五 PS:如有需要Python学习资料的小伙伴可以加点击下方链接 ...

  2. Ajax异步按下回车提交表单

    作者:故事我忘了¢个人微信公众号:程序猿的月光宝盒 html <form id="findInvis"> 帖子标题: <input title="请输入 ...

  3. 易优CMS:channelartlist 获取当前频道的下级栏目的内容列表

    channelartlist 获取当前频道的下级栏目的内容列表   [基础用法] 名称:channelartlist 功能:获取当前频道的下级栏目的内容列表标签 语法: {eyou:channelar ...

  4. python 装饰器使用总结

    python 装饰器使用总结 by:授客 QQ:1033553122 测试环境 win10 python 3.5 例1:一个简单的例子 #!/usr/bin/env python # -*- codi ...

  5. AndroidStudio集成.so遇见的问题:关于java.lang.UnsatisfiedLinkError: Native method not found

    我调试的是串口程序,程序中需要继承.so文件,AndroidStudio中集成.so文件的方法是将存放.so的文件夹(通常这个文件夹名字是:armeabi)拷贝到app的libs文件夹中,然后在app ...

  6. Linux常用命令及详细说明 — 结合工作(侧重性能监控,包括CPU、内存、IO、网络、磁盘等)

    (一)Linux监控的几个常用命令(对于服务器后端程序猿很重要,必须掌握): 命令 功能 命令 功能 iostat 统计CPU及网络.设备和分区IO的数据 vmstat 展示给定时间服务器的状态值(包 ...

  7. C++ --const修饰指针

    const修饰指针 1.const修饰指针 (常量指针)常量的指针 const int *p = &a; const修饰的是*p(表示内容为常量),不是p(指针) 指针指向的地址可以改,但指针 ...

  8. 【转载】解决:'webpack-dev-server' 不是内部或外部命令,也不是可运行的程序 或批处理文件。

    注:网上能搜到的常规解决办法我都试了不好用,这个是最快的解决办法. 以下是转载的解决办法: ****************************************************** ...

  9. August 11th, 2019. Week 33rd, Sunday

    Worry does not empty tomorrow of its sorrow. It empties today of its strength. 忧虑不会消除明天的痛苦,它只会削弱今天的力 ...

  10. 如何下载Twitter视频?最简单的保存推特视频的方法

    Twitter上面的短视频越来越流行了,但是推特官方并没有提供下载通道.如果你想下载这些小视频到电脑或者手机(安卓/iPhone),该如何操作呢?下面介绍一种最简单的方法. 下载Twitter视频我们 ...