stl::list 对象的最大数量

2023-12-22

问题是在数据集中找到周期性图形模式。所以我有 1000 个时间步长,每个时间步长都有一个图表(编码为整数)。因此,该图可能出现 999 个可能的周期。我还定义了一个相位偏移,定义为(时间步模周期)。对于在周期为 2 的第 5 个时间步长中首次出现的图,相位偏移为 1。

我正在尝试用 C++ 创建一个二维列表数组。每个单元格包含一个列表,其中包含具有指定周期和相位偏移的图形。我不断在相应的列表中插入图表。

list<ListNode> A[timesteps][phase offsets]

ListNode是一个有 4 个整型变量的类。

这给了我分段错误。使用 500 作为大小运行良好。这是由于内存不足还是其他问题?

Thanks.


可能是由于堆栈大小有限。

您正在创建一个由 1000x1000 = 1000000 个对象组成的数组,几乎可以肯定每个对象至少有 4 个字节,因此至少大约为 4 MB。假设它在一个函数内部,它将是auto存储类,通常翻译为在堆栈上分配。典型的堆栈大小约为 1 到 4 MB。

尝试类似的方法:std::vector<ListNode> A(1000*1000);(并且,如有必要,创建一个包装器以使其看起来是二维的)。

编辑:包装器将重载一个运算符来为您提供 2D 寻址:

template <class T>
class array_2D { 
    std::vector<T> data;
    size_t cols;
public:
    array_2D(size_t x, size_t y) : cols(x), data(x*y) {}

    T &operator()(size_t x, size_t y) { return data[y*cols+x]; }
};

您可能想对其进行修饰(例如,使用边界检查),但这就是总体思路。解决它会使用(), as in:

array_2d<int> x(1000, 1000);

x(100, 3) = 2;

y = x(20, 20);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

stl::list 对象的最大数量 的相关文章

随机推荐

  • Fortran编译器

    我正在 Mac 上开发 Android 应用程序 有谁知道android 的fortran 编译器吗 我打算从 C 例程调用一些 Fortran 例程 然后用 java 类包装 C 例程并使用 JNI 来执行此操作 但是 我无法编译 For
  • 将 lambda 表达式应用于数组元素时出现 ValueError

    目前我在处理 numpy array 4x1 即时遇到错误 1 96113883 3 46144244 5 075857 1 77550086 使用 lambda 函数f lambda x x if x gt 0 else x 0 01 错
  • 通过 C# 代码更改货币

    我使用以下内容来显示金额 String Format 0 C item Amount 这个显示器 9 99 没关系 但是如果我希望应用程序能够控制货币并能够更改货币 该怎么办 9 99 如何通过代码更改货币格式 货币符号由 CultureI
  • haskell 检查用户输入错误

    我在 haskell 中编写应用程序 我想知道这是检查用户输入是否正确的最佳方法 例如当我要求 int 时它是 int 还是当要求格式良好的日期时它是日期 感谢帮助 Use maybeRead 该函数是一个候选函数 包含在 Haskell
  • 在 Windows 上配置 package.json

    我正在尝试在 Windows 上管理 React 项目的配置 它之前在 Mac 上运行 我在用着yarn build 在 的里面package json scripts gt build被配置为 rm rf deployment stati
  • Ruby:将两个哈希合并为一个并连接值

    2 hash h1 s1 gt 2009 7 27 s2 gt 2010 3 6 s3 gt 2009 7 27 h2 s1 gt 12 29 15 s2 gt 10 00 17 s3 gt 12 25 52 我想将两个哈希合并为一个 如下
  • sbt 编译时警告:类型模式 List[String] 中的非变量类型参数 String

    我的 sbt 显示警告消息 non variable type argument String in type pattern List String the underlying of List String is unchecked s
  • Eclipse 意外退出 2022-06 [重复]

    这个问题在这里已经有答案了 我开始学习Java 几天来一直遇到这个错误 我安装了 eclipse 并且运行得很好 第二天 当我尝试打开该应用程序时 它打不开 并且收到一条消息 无法打开应用程序 Eclipse 进而 Eclipse 意外退出
  • Python 和 urllib2:如何使用参数发出 GET 请求

    我正在构建一个 API API 它基本上是内部 REST Web 服务的包装器 Web 应用程序将向该服务发出大量请求 一些Web服务调用需要是GET而不是POST 而是传递参数 是否有一种 最佳实践 方法将字典编码为查询字符串 例如 fo
  • 有选择地从 MySQL 中删除大部分重复的记录

    我有一张桌子 PRICE UPDATE id int 5 auto increment primary unique part number varchar 10 non null price float 10 2 non null 一些p
  • 如何从 SQL Server 导出到 XML

    从 SQL Server 表或视图 导出到 XML 的最简单方法是什么 这就是我到目前为止所做的 执行Sql任务 SELECT FROM Production Product FOR XML AUTO TYPE ROOT Data 结果集
  • F# 编译错误

    我有以下导致编译错误的 F 代码 persistence fs 32 21 错误 FS0072 根据此程序点之前的信息查找不确定类型的对象 在此程序点之前可能需要类型注释来约束对象的类型 这可以使查找得以解决 错误出现在 serialize
  • 正则表达式如何匹配除空行之外的所有行尾?

    如果我有文字 AAAAAA BBBBBB CCCCCC DDDDDD EEEEEE FFFFFF GGGGGG HHHHHH 我想匹配除空行之外的所有行尾并将行尾替换为制表符 s 部分有效 但它也匹配非空行的最后一个字符 不起作用 什么是正
  • GNU 语句表达式的编译器支持

    哪些现代编译器支持 Gnu 语句表达式 C 和 C 语言 我应该在什么版本中使用语句表达式 语句表达式就像 code code retval int b 56 int c int a a sin b a 我已经知道一些这样的编译器 海湾合作
  • 如何编写一个以 C++ 代码作为输入的 C++ 代码生成器?

    我们有一个 CORBA 实现 可以为我们自动生成 Java 和 C 存根 由于 CORBA 生成的代码很难使用 因此我们需要围绕 CORBA 代码编写包装器 帮助器 所以我们有一个两步代码生成过程 是的 我知道这很糟糕 CORBA IDL
  • PHP/MySQL 更好的用户搜索

    为了让代码焕发新的活力 我大部分时间都是在 14 多年前编写的 我发现我当时写的可爱的小设置 在某些地方缺乏 即处理用户输入 Lesson 永远不要低估用户通过验证器注入垃圾 拼写错误和欺骗的能力 旧方法已达到临界质量 因为 SELECT
  • 在 Ubuntu 16.04 Xenial 上安装 PostGIS

    我想在 Ubuntu xenial 16 04 上安装带有 PostgreSQL 9 6 的 PostGIS 2 3 sudo sh c echo deb http apt postgresql org pub repos apt trus
  • php.ini 和 .htaccess 有什么区别?

    假设我想改变的值 php value post max size 20M in htaccess post max size 20M in php ini 两者都会执行相同的操作 那么有什么区别php ini and htaccess 中的
  • 如何从意图服务向活动发送消息[重复]

    这个问题在这里已经有答案了 基本上 我有一个带有进度对话框的活动 我正在向意图发送一条消息 以从互联网加载所有数据 而应用程序中不会出现任何问题 但是 我能够向服务发送消息 但无法将消息重新发送到活动 该怎么办 以下是我向服务发送消息的方式
  • stl::list 对象的最大数量

    问题是在数据集中找到周期性图形模式 所以我有 1000 个时间步长 每个时间步长都有一个图表 编码为整数 因此 该图可能出现 999 个可能的周期 我还定义了一个相位偏移 定义为 时间步模周期 对于在周期为 2 的第 5 个时间步长中首次出