cost 393 ms
如何使我的容器與 boost::range 兼容?

[英]How can I make my container compatible with boost::range?

我正在滾動一個自定義的、類似標准的容器,我想讓它與boost::range庫兼容。 到目前為止,它適用於所有 STL 算法,並且還滿足以下條件: 但是當我嘗試在這種情況下使用它時: 它似乎缺少一些模板化的元數據。 錯誤是這樣的 是否有類似的概念 assert 我可以用來幫助我完成我的類型缺少的實現 ...

條件提升::range::join

[英]Conditional boost::range::join

我想像這樣寫一個 function : 可能嗎? 我應該使用哪種類型而不是IteratorRangeType ? 據我了解, boost::range::join返回類型取決於它的 arguments。 是否有一些包裝器 class 可以分配任何類型的范圍,只要其基礎值類型相同? ...

為什么我不能在基於范圍的循環之外使用 boost::adaptor::map_values?

[英]Why can't I use boost::adaptor::map_values outside a ranged-based loop?

我想使用boost的boost::adaptor::map_values來構造一個std::map的所有值的向量。 拿這個示例代碼(或在 Godbolt 試試) : GCC 抱怨: 我能找到的所有示例和所有文檔都只在接受范圍的語句(如基於范圍的 for 循環或boost::copy )中使用 b ...

boost::adaptors::transformed 類沒有 const 開始/結束

[英]boost::adaptors::transformed for classes without const begin/end

我正在嘗試將一個對象傳遞給boost::adaptors::transformed 。 但是,這似乎只有在該對象的類定義了begin和end const版本時才有效。 然而,對我來說情況並非如此,因為迭代此類的對象會修改對象本身的內部狀態。 這是一個使用虛擬類Vector的最小示例,該類僅公開非 c ...

與 BOOST Range 的接口

[英]Interface with BOOST Range

動機與方法我正在編寫一個小型庫,它提供了一個 AST 結構和一些算法來導航它。 簡單來說,AST 的結構如下:struct ASTNode; using tBranch = std::vector<ASTNode>; struct ASTNode { /* some data */ ...

通過boost :: any_range隨機訪問boost :: transformed_range

[英]Random access of boost::transformed_range via boost::any_range

我試圖在一些遺留代碼中使用boost::any_range (帶隨機訪問標記),但發現它不喜歡lambdas。 編譯錯誤似乎抱怨lambda對象缺少默認構造函數。 這是預期的行為嗎? 它是按設計的嗎? 我使用的是升級版本1.66的MSVC C ++ 17。 文檔提到transfor ...

為什么`boost::lower_bound` 按值取參數?

[英]why does `boost::lower_bound` take its argument by value?

Range 2.0 中boost::lower_bound (在此處找到)的實現按值獲取其參數。 為什么是這樣? std::lower_bound以 const ref 為參數 - 請參閱此處 ...

聲明const`boost :: range`s的正確方法

[英]Proper way of declaring `const` `boost::range`s

使用boost::any_range ,指定不應該修改基礎容器(如果有)的正確方法是什么? 例如,使用別名 template<typename T> using Range = boost::any_range<T, boost::forward_traversal_t ...

C ++提升范圍。 來自數組的對數組

[英]c++ boost range. Array of pairs from array

我有一個C數組的int及其大小,即int* arr, unsigned size 。 我想從中獲得類似視圖的效果,其中將有成對的int作為元素。 澄清一下,任務是:我收到一個[1,2,3,4]類的數組,我想要一個視圖,它的外觀像[(1,2),(3,4)] 。 是否有任何方便的方法可 ...

從轉換范圍構造新容器

[英]Construct new container from transformed range

在我的代碼中,我經常不得不從先前轉換的范圍中創建一個新容器。 到目前為止,我已經使用了boost::adaptors::transformed和boost::copy_range來完成這項工作,認為容器的構造函數應該能夠預分配必要的內存。 不幸的是,我注意到boost::adaptors:: ...

我已經編寫了C ++代碼來將boost :: optional視為一個范圍,但是它沒有編譯

[英]I've written C++ code to treat boost::optional as a range but it doesn't compile

我希望將boost :: optional視為可以包含零個或一個元素的容器。 從邏輯上講,我應該能夠為容器創建一個迭代器,並在其上使用boost :: for_each。 我的嘗試在下面,但無法編譯。 我已經在GodBolt上嘗試過了。 https://godbolt.org/g/z ...

如何使用boost-range在函數中封裝自定義迭代器

[英]How to encapsulate custom iterator in function using boost-range

最近我使用boost-range來創建滿足某些標准的元素的范圍。 在所有情況下,我一直使用相同類型的過濾范圍,因此我嘗試將此行為封裝在外部函數中。 這是我的問題開始的地方。 請考慮以下示例。 第一個for-loop表現為預期的打印4和8.然后第二個for循環只打印4.為什么? ...

如何創建具有額外參數以捕獲上下文的boost :: range :: transform版本

[英]How to create a version of boost::range::transform that has an extra paramter for capturing context

例如我有一個向量 和一個結構 我希望做到以下幾點 但是上述內容無法在我需要使用的boost(1.55)版本和編譯器版本(VS-2010)中進行編譯。 問題在於,當lambda通過引用捕獲變量時,轉換適配器最終嘗試使用非法且無法編譯的Assign構造函數。 但是,如果什 ...

增強范圍可以變換范圍內的相鄰元素嗎?

[英]Can boost range transform adjacent elements in a range?

如果我有一個范圍並且想要轉換相鄰對,是否有一個增強范圍適配器來執行此操作? 例如 和輸出將是 編輯 我已經嘗試過范圍適配器 但是我不知道如何推斷|的返回類型。 操作員。 如果我可以這樣做,那么適配器就解決了。 ...

算法在容器中查找為其成員之一具有給定值的元素

[英]Algorithm find an element in a container with a given value for one of its members

我經常要做的事情是在元素集合中找到一個具有給定值的元素。 例如給出: 我想找到名稱為“愛麗絲”的人。 一種實現方法是(使用升壓范圍適配器): 對於這樣簡單的操作,這是很多樣板。 應該不應該做類似的事情: (不編譯,因為&Person :: getName不是一元函數 ...

是否可以隱藏具有提升范圍的底層容器?

[英]Is possible to hide underlying containers with boost range?

我有一個圖結構,其中頂點可以有多種類型的邊。 頂點類型是多態的,它們必須能夠根據它們的類型“分類”邊並相應地存儲它們,但我希望能夠在不知道它們如何存儲的情況下檢索“基本級別”的所有邊。 我正在嘗試使用 boost::adaptors::transformed、boost::range::join ...

實現Boost范圍適配器reversed_if

[英]Implementing a Boost range adaptor reversed_if

我經常遇到我的代碼中的情況,我希望根據運行時條件以直接或相反的順序迭代一個范圍。 這通常會產生如下代碼 要么 其中包含代碼重復(第一個)或效率低下(第二個)。 我一直在考慮一個假設的Boost范圍適配器,它會有條件地反轉一個范圍,這樣我就可以寫了 我可以自己實現它 ...

“使用算法; 不寫代碼“用於多步邏輯?

[英]“use algorithms; don’t write code” for multi-step logic?

這個問題讓我覺得“根本不要使用明確的循環! 使用STL / Boost算法“但仔細查看,我注意到有一個adjacent_difference ,並且accumulate和Boost在某處有一個zip , 它們根本不會堆疊在一起,但每個只能自己完成一次。 因此,以直接的方式使用它們需要 ...


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