小编gec*_*cko的帖子

C++内存管理技术/实践

我用C++开始了一个项目.这种语言的内存管理对我来说是新的.

我曾经创建对象,new ()然后传递指针,虽然它工作,但调试很痛苦,人们看到代码时看着我很有趣.我很自豪它没有泄漏或段错(一旦修复),但它确实付出了很多努力.

list <struct Connection *> users;

struct Connection * accept_connection (const char *name) {
  struct Connection * new_node = new Connection ();
  new_node->_data = ... // whatever, set it up here
  return new_node;
}

struct Connection * new_user = accept_connection (const char *name);
users.append (new_user);
Run Code Online (Sandbox Code Playgroud)

所以我为这个项目的下一个版本制定了新战略.到目前为止,我正在做的是创建对象new ()并为其分配唯一的整数ID号.然后,我使用ID作为键将对象存储在散列表中.现在,项目以整数ID号存储和传递,当您需要取消引用它时,您将转到哈希表并返回thing *或者NULL.因此,我不再遇到指针错误,但代码的速度有所降低.

typedef unsigned long ID_Number;

// create a user and return the ID
ID_Number create_user () {
  ID_Number new_id = assign_unique_id ();
  struct …
Run Code Online (Sandbox Code Playgroud)

c++ memory-management

10
推荐指数
1
解决办法
7265
查看次数

python pickle:这是什么?我什么时候用它?

我认为pickle是一个对象持久性库,它允许我将数据结构写出来并重新加载它.

为什么/何时我会使用文本文件的"传统"方法?

编辑:实际上,这不是一个有用的方式来表达问题.我的意思是什么是泡菜更容易/更方便的情况,什么时候会让我遇到麻烦?什么样的数据或设计模式有助于腌制?

python pickle data-persistence

0
推荐指数
1
解决办法
186
查看次数