cost 107 ms
gcc 的內存對齊警告

[英]Memory Alignment warning with gcc

我正在嘗試實現一個多態數據結構,例如一個侵入式鏈表(我已經知道內核有一個 - 這更多是學習經驗)。 問題是將嵌套結構強制轉換為包含結構會導致gcc發出內存對齊警告。 具體情況如下: 使用gcc tc -std=c99 -pedantic -fstrict-aliasing -Wcast-al ...

C++ STL - 容器實現

[英]C++ STL - Containers implementation

我目前正在學習很多關於侵入式容器的知識。 所以我經常將它們與標准容器進行比較。 讓我們以 std::list 為例。 我讀到這個容器通常被實現為一個雙向鏈表。 但是我沒有詳細閱讀節點是如何實現的。 我假設有一個“上一個”和“下一個”指針,但是屬於這樣一個節點的對象呢? 它是指向對象的指針,還是在節點 ...

Boost.Intrusive Containers - 不同大小的元素

[英]Boost.Intrusive Containers - Elements with different size

在“何時使用?”一章的 Boost.Intrusive 文檔中 https://www.boost.org/doc/libs/1_72_0/doc/html/intrusive/usage_when.html ,聲明您可以使用包含不同或未知大小對象的侵入式容器。 我的問題是我不明白什么時候有人會需要 ...

為什么 boost intrusive list 的 push_back function 需要左值?

[英]Why boost intrusive list 's push_back function requires lvalue?

我正在學習侵入性列表: 我了解侵入式列表的基本思想,但我不明白為什么 push_back 需要專門的左值。 從邏輯的角度來看,為什么侵入式列表無法處理右值? 左值要求是否意味着用戶需要自己處理 DummyObject 的生命周期? 也就是說,當 IntrusiveList pop_front 時, ...

將鏈表嵌入數據結構有什么好處?

[英]What is the advantage of embedding a linked list into a data structure?

在 FreeBSD 中閱讀 kernel 數據結構時,我偶然發現了MBuf 。 MBuf包含一個指向MBuf鏈中下一個MBuf的指針,實現了一個鏈表。 每個MBuf本身還包含特定於鏈表中該節點的數據。 我更熟悉將容器類型與值類型分開的設計(考慮std::list或System.Collectio ...

類是否必須是標准布局類型才能確定其成員的內存偏移量?

[英]Does a class need to be a standard layout type to be sure of the memory offsets of its members?

可以說我想寫一個侵入式列表。 我有一個侵入式列表類模板,該模板帶有類型和指向成員的指針以用作節點。 大致如下所示: 您要存儲在列表中的每件事物上都有一個IntrusiveListNode。 要將IntrusiveListNode轉換成可以使用的東西,例如IntegerListNod ...

在C ++中合並兩個Boost Intrusive集?

[英]Merge two boost intrusive sets in C++?

我有兩個Boost Intruset集,需要將其合並在一起。 我有map_old.m_old_attributes boost侵入式集合,我需要將其合並到m_map_new_attributes boost侵入式集合 做這個的最好方式是什么? 我找不到可以為我合並的功能? 我最近開 ...

兩個[或多個]容器具有相同的基礎數據,但對數據的視圖不同

[英]Two [or more] containers with same underlying data, but different views on the data

下面的MyClass表示一種數據結構,我需要能夠以兩種方式非常快速地進行搜索。 可以這么說,我將MyClass存儲在and std :: vector中,以便可以快速刪除並連續插入其中的相似名稱。 但是,我還需要能夠基於anInt對MyClass的內容進行排序。 那是一個侵入式容器(或Mu ...

嘗試學習boost :: intrusive Q5

[英]Trying to learn boost::intrusive Q5

我有以下程序。 我在Linux下使用gcc-4.9.2構建了它。 我的問題是: 1)為什么哈希表似乎是第一次排序,但是從值中刪除項目后卻丟失了排序? 2)我該如何通過密鑰自己遍歷哈希表,並說出std :: cout散列到存儲桶的每個項目,例如the #if 0 #endif部分中 ...

帶有共享指針的Boost :: IntrusiveList

[英]Boost::IntrusiveList with Shared Pointers

因此,我正在使用FastDelegate <>和boost庫編寫事件處理系統。 我需要為事件數據設置一個共享指針隊列,並為偵聽器設置一個FastDelegate>列表。 這就是問題所在。 侵入式列表和隊列不允許shared_ptr甚至常量引用,這使我的代碼導致編譯時錯 ...

為侵入式容器的迭代器分配新值

[英]Assigning a new value to a iterator of a intrusive container

在工作增強侵入式容器splay_set時,我必須重置本地迭代器成員變量。 請參見下面的示例代碼- 我想侵入式容器不支持分配。 我也無法通過成員初始化器列表初始化splay_set迭代器。 在boost和其他站點上有如此有限的示例。 沒有人能對這個問題給出明確的答案。 我的問 ...

嘗試學習boost :: intrusive Q3-在IC中存儲指針時,我應該使用smart_pointer嗎?

[英]Trying to learn boost::intrusive Q3 - When storing pointers in ICs, should I use smart_pointer?

我對侵入式容器的理解有了長足的進步。 我有一個運行“ while”的程序,然后在這樣的代碼行上運行:delete * it; (見下文): 該程序使用此堆棧跟蹤崩潰: 這是一個奇怪的錯誤,因為該程序不是多線程的,但運行了一段時間卻沒有任何障礙。 我不確定發生了什么,但是也許 ...

嘗試學習boost :: intrusive Q2

[英]Trying to learn boost::intrusive Q2

如果我不評論這些 在循環外部並注釋掉循環中崩潰的循環。 我需要能夠使基列表(和成員列表)位於任何循環之外。 如何實現的? 編輯 我試圖以最簡單的形式解決的實際問題是這個。 我想要一個MyClass的std :: vector,將其稱為AllThingsBunc ...

為什么沒有boost :: intrusive :: map?

[英]Why isn't there boost::intrusive::map?

boost文檔( http://www.boost.org/doc/libs/1_55_0/doc/html/intrusive.html )指出侵入式容器是為list (單/雙鏈接), set和multiset 。 我找不到地圖的實現。 有沒有更深層次的理由,還是只是等待實施? ...

擁有AddRef和Boost的發布shared_ptr

[英]Own AddRef and Release for Boost shared_ptr

我曾經聽說有可能將Boost shared_ptr或intrusive_ptr參考添加和釋放函數映射到我自己的添加和釋放參考函數的實現。 這真的有可能嗎? 如果是,是否有人可以向我指出有關此功能的一些資源? 謝謝! ...

C侵入式哈希-它在某種程度上比侵入式列表好嗎?

[英]C intrusive hash - how is it in any way better than an intrusive list?

我正在研究一個C項目,該項目定義一個hash.h標頭,其中包含一個侵入式哈希結構及其接口,以及一個list.h標頭,其中包含一個侵入式列表及其接口。 哈希是使用列表實現的,並且沒有其他可用的數據結構來支持哈希的實現,因此在這種情況下抽象沒有太多價值。 因此,撇開抽象,使用侵入式哈希而 ...


 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM