Tag: 数据结构

实施

在C / C ++中有没有速度和高速caching效率的trie的实现? 我知道什么是特里,但我不想重新发明,自己实施。

寻找类似C ++ STL的vector类,但是使用栈存储

在我写我自己之前,我会问你们所有人。 我正在寻找一个几乎完全像STL向量的C ++类,但将数据存储到堆栈中的一个数组中。 某种types的STL分配器类也可以工作,但我试图避免任何堆,甚至静态分配每个线程堆(虽然其中之一是我的第二select)。 堆栈效率更高。 对于使用vector的当前代码来说,它几乎是一个代替。 对于我正要写自己,我正在想这样的事情: char buffer[4096]; stack_vector<match_item> matches(buffer, sizeof(buffer)); 或者类可以有内部分配的缓冲区空间。 然后它会看起来像: stack_vector<match_item, 256> matches; 我以为它会抛出std :: bad_alloc,如果它运行的空间,尽pipe这不应该发生。 更新 使用Chromium的stack_container.h很好用! 我没有想到这样做自己的原因是我一直忽略了对STL集合构造函数的allocator对象参数。 我已经使用了模板参数几次做静态池,但我从来没有看到代码或写任何实际使用的对象参数。 我学到了一些新东西。 很酷! 该代码有点混乱,由于某些原因,GCC强迫我将分配器声明为实际项目,而不是将其构造成向量的分配器参数。 它从这样的东西: typedef std::pair< const char *, const char * > comp_list_item; typedef std::vector< comp_list_item > comp_list_type; comp_list_type match_list; match_list.reserve(32); 对此: static const size_t comp_list_alloc_size = 128; typedef std::pair< […]

为什么启动一个初始容量的ArrayList?

ArrayList的通常构造函数是: ArrayList<?> list = new ArrayList<>(); 但是也有一个重载的构造函数,它的初始容量是一个参数: ArrayList<?> list = new ArrayList<>(20); 为什么创build一个具有初始容量的ArrayList是非常有用的,我们可以随意添加它呢?

在C语言中实现字典的捷径

在C中编写程序时我想念的一件事是字典数据结构。 用C实现一个最方便的方法是什么? 我不是在寻找性能,而是从头开始编码。 我不希望它是通用的 – 就像string-> int会做。 但我确实希望能够存储任意数量的项目。 这更像是一个练习。 我知道有第三方库可供使用。 但是考虑一下,他们不存在。 在这种情况下,可以用最快的方法来实现满足上述要求的字典。

如何保持Javascript对象/数组的sorting,同时也保持密钥查找?

我有一些数据,我最初存储在一个通用的JavaScript对象,ID作为一个关键: { "7": {"id":"7","name":"Hello"}, "3": {"id":"3","name":"World"}, … } 但是,我发现浏览器在循环播放时不能保证特定的对象顺序,所以在上面的“3”中会出现在“7”之前。 我切换到使用这样的数组格式: [ {"id":"7","name":"Hello"}, {"id":"3","name":"World"}, … ] 现在,我可以循环正确的顺序,但不能快速查找,例如data["3"]而不必循环数组。 有两种方法结合使用的好方法吗? 我宁愿避免为每种格式使用单独的对象,因为对象相当大(数百个元素)。

用于键/值对的Javascript中的对象与数组

假设你有一个非常简单的数据结构: (personId, name) …并且您想要将这些数据存储在一个JavaScriptvariables中。 正如我所看到的,你有三个select: // a single object var people = { 1 : 'Joe', 3 : 'Sam', 8 : 'Eve' }; // or, an array of objects var people = [ { id: 1, name: 'Joe'}, { id: 3, name: 'Sam'}, { id: 8, name: 'Eve'} ]; // or, a combination of the […]

有没有公​​共数据结构的开源C库?

我正在寻找具有常见的可重用数据结构,如链接列表,哈希表等的C库。类似于由Kyle Loudon用C(平装书)进行Mastering Algorithms分发的源代码。

你如何在JavaScript中实现堆栈和队列?

在JavaScript中实现堆栈和队列的最佳方式是什么? 我正在寻找分stream码algorithm,我将需要这些数据结构。

如何实现一个队列使用两个堆栈?

假设我们有两个堆栈,没有其他的临时variables。 是否有可能“构build”一个队列数据结构只使用两个堆栈?

向量,结构和std :: find

再次与我的载体。 我希望我不太烦人。 我有这样的结构: struct monster { DWORD id; int x; int y; int distance; int HP; }; 所以我创build了一个向量: std::vector<monster> monsters; 但现在我不知道如何通过vectorsearch。 我想在向量中find怪物的ID。 DWORD monster = 0xFFFAAA; it = std::find(bot.monsters.begin(), bot.monsters.end(), currentMonster); 但显然这是行不通的。 我只想通过结构的.id元素进行迭代,我不知道该怎么做。 非常感谢帮助。 谢谢 !