问题标签 [variable-length]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
1157 浏览

delphi - 实现可变长度数组的最佳方法是什么?

我想将数据库中的大型结果集存储在内存中。每条记录都有可变长度,访问时间必须与数组一样快。实现这一点的最佳方法是什么?我正在考虑将偏移量保存在单独的表中并连续存储所有记录?奇怪吗?(编程语言:德尔福)

0 投票
11 回答
27311 浏览

c++ - 可变大小结构 C++

这是在 C++ 中制作可变大小结构的最佳方法吗?我不想使用向量,因为初始化后长度不会改变。

编辑:重命名变量名称并更改代码以更正确。

0 投票
4 回答
25692 浏览

c++ - 可变长度模板参数列表?

我记得看到这样的事情正在做:

也就是说,X 继承自作为模板参数传递的可变长度类型名列表。当然,此代码是假设的。

不过,我找不到任何参考。是否可以?是 C++0x 吗?

0 投票
4 回答
56283 浏览

matlab - MATLAB中未知长度的矩阵?

我正在尝试设置一个具有两列的可变长度零矩阵,我可以将while循环的结果输出到其中(目的是使用它来存储欧拉方法的步长数据,并调整时间步长)。长度将由循环的迭代次数决定。

我想知道在我运行循环时是否有办法做到这一点,或者我是否需要从一开始就设置它,以及如何去做。

0 投票
4 回答
1767 浏览

c++ - 变长参数和函数重载的区别

这个 C++ 问题似乎非常基本和一般,但我仍然希望有人回答。

1) 具有可变长度参数的函数和重载函数有什么区别?2)如果我们有一个具有可变长度参数的函数和另一个具有相似参数的同名函数,我们会有问题吗?

0 投票
3 回答
1305 浏览

c++ - C++ as in Java?: 具有 *variable* int 长度的向量向量

我的模型最好使用一些

v int[30][i][N_i];

结构是 30 个整数元组向量,其中

v[0] 是一个虚拟对象,
v[1] 是普通整数(其中 N_0 个),
v[2] 是整数对(N_1 对)
......
v[29] 将是 29 个整数元组(N_29 个他们)

不像 vector<vector<int>>“generic-vector-of-vectors-in-c”

显然,外部固定的 dim=30 没有问题,内部的由自扩展 STL 向量类处理。

有没有办法让中间维度固定,但不是恒定的?

0 投票
13 回答
179277 浏览

c++ - 为什么可变长度数组不是 C++ 标准的一部分?

在过去的几年里,我没有经常使用 C。当我今天阅读这个问题时,我遇到了一些我不熟悉的 C 语法。

显然在C99中以下语法是有效的:

这似乎是一个非常有用的功能。是否曾经讨论过将其添加到 C++ 标准中,如果有,为什么将其省略?

一些潜在的原因:

  • 编译器供应商难以实现
  • 与标准的其他部分不兼容
  • 可以使用其他 C++ 结构来模拟功能

C++ 标准规定数组大小必须是常量表达式 (8.3.4.1)。

是的,我当然意识到在玩具示例中可以使用std::vector<int> values(m);,但这会从堆而不是堆栈分配内存。如果我想要一个多维数组,例如:

vector版本变得非常笨拙:

切片、行和列也可能分布在整个内存中。

从讨论comp.std.c++来看,很明显这个问题是相当有争议的,争论双方都有一些非常重量级的名字。当然,astd::vector总是更好的解决方案并不明显。

0 投票
2 回答
30258 浏览

arrays - Cobol中的二维变长数组

你如何在 Cobol 中定义一个二维 MxN 数组,其中 M 和 N 都是可变长度的?

这是我在尝试将变量数组包含在另一个数组中时在 Net Express 中收到的消息:

0 投票
16 回答
14468 浏览

encoding - 编码随机可变长度二进制代码序列的最紧凑方法?

假设您有一个List<List<Boolean>>,并且您想以最紧凑的方式将其编码为二进制形式。

我不关心读取或写入性能。我只想使用最少的空间。此外,示例是用 Java 编写的,但我们不限于 Java 系统。每个“列表”的长度是无限的。因此,任何对每个列表的长度进行编码的解决方案本身都必须对可变长度数据类型进行编码。

与这个问题相关的是可变长度整数的编码。您可以将每个List<Boolean>视为可变长度unsigned integer

请仔细阅读问题。我们不仅限于 Java 系统。

编辑

我不明白为什么很多答案都在谈论压缩。我并不是要进行压缩本身,而只是将随机的比特序列编码下来。除了每个位序列的长度不同并且需要保留顺序。

你可以用不同的方式思考这个问题。假设您有一个随机无符号整数(无界)的任意列表。你如何在二进制文件中编码这个列表?

研究

我做了一些阅读,发现我真正想要的是通用代码

结果

我将使用论文A new recursive universal code of the positive integers 中描述的Elias Omega Coding的变体

我现在明白了较小整数的表示越小是如何与较大整数进行权衡的。通过简单地选择具有第一个整数的“大”表示的通用代码,从长远来看,当您需要对任意大整数进行编码时,您可以节省大量空间。

0 投票
5 回答
10776 浏览

c - 如何在 C 中实现可变长度的“字符串”-y

我用谷歌搜索了很多,但我找不到有关如何在高级语言中通常实现可变长度字符串的信息。我正在创建自己的这种语言,但不确定从哪里开始使用字符串。

我有一个描述string类型的结构,然后是一个create分配这样一个“字符串”的函数:

但是,这将只允许 1kb 长的字符串。这有点愚蠢,在大多数情况下会浪费大量内存。

鉴于我必须以某种方式声明要使用的内存……我该如何实现一个可以(有效)存储(有效)无限数量的字符的字符串?