5
將布爾的R向量傳遞給C++ dynamic_bitset
向量的最佳方法是什麼?有沒有辦法使用指針和矢量長度來構造一個dynamic_bitset
對象,這對於矢量類是可能的?你會推薦使用Rcpp嗎?
感謝您的幫助和時間......將布爾R向量傳遞給C dynamic_bitset
將布爾的R向量傳遞給C++ dynamic_bitset
向量的最佳方法是什麼?有沒有辦法使用指針和矢量長度來構造一個dynamic_bitset
對象,這對於矢量類是可能的?你會推薦使用Rcpp嗎?
感謝您的幫助和時間......將布爾R向量傳遞給C dynamic_bitset
我只想創造dynamic_bitset
這樣的:
#include <Rcpp.h>
#include <boost/dynamic_bitset.hpp>
using namespace Rcpp ;
// [[Rcpp::export]]
void create_dynamic_bitset(LogicalVector x){
int n = x.size() ;
boost::dynamic_bitset<> bs(n);
for(int i=0; i<n; i++) bs[i] = x[i] ;
// do something with the bitset
for (boost::dynamic_bitset<>::size_type i = 0; i < x.size(); ++i)
Rcout << x[i];
Rcout << "\n";
}
內部,R邏輯載體只是int
陣列。所以沒有更直接的方法來構建dynamic_bitset
,你的有迭代。
另外,請注意輸入LogicalVector
中缺失的值。
或者,也可能具有存儲爲原始矢量(RCPP類RawVector
)所述輸入數據,使用一個dynamic_bitset<Rbyte>
和使用塊構造:
void create_dynamic_bitset(RawVector x){
boost::dynamic_bitset<Rbyte> bs(x.begin(), x.end());
}
尼斯和1。我在裏面扔了一個'Rcpp :: export'屬性,以便它實際上可以從R中調用:) –
最初我嘗試使用'BH',但顯然'dynamic_bitset'不包括在內,所以沒有展示Rcpp :: depends (BH)' –
昨天我們升級了軟件包......但它仍然缺失。你也是BH的作者,所以如果你想在那裏,你可以改變包創建腳本。 –