草庐IT

as_array_ref

全部标签

c++ - R 数值 vector 列表 -> C++ 2d array with Rcpp

我主要使用R,但最终想使用Rcpp与一些接收和返回二维数值数组的C++函数交互。因此,为了开始使用C++和Rcpp,我想我只需要编写一个小函数,将我的可变长度数字vector的R列表转换为C++等效项,然后再返回。require(inline)require(Rcpp)test1=cxxfunction(signature(x='List'),body='usingnamespacestd;Listxlist(x);intxlen=xlist.size();vector>xx;for(inti=0;itest=as>(xlist[i]);xx.push_back(test);}retu

c++ - 如果我使用 Array 而不是 Vector,有什么缺点吗?

我用C++编写了一个MPCController,其中包含一个Matrix类,我将数据存储在一个数组中,并使用了C内存函数(memcpy、memset等)。今天我用c++vector替换了数组,我使用复制来移动内存等......我遇到了一个问题,通过用vector替换数组,控制信号的计算时间几乎增加了一倍。如果我使用alloc、memcpy、memset、freeinsc++代码,有什么缺点吗?如果有的话是什么? 最佳答案 Vector在两个方面增加值(value):提供C数组中不存在的附加功能,例如调整大小、检查当前大小等。您可能会

c++ - 将抽象仿函数分配给 std::function - 为什么 std::ref 是一个解决方案?

我想将仿函数对std::function的赋值封装到一个方法中。我必须传递从通用抽象类Slot继承的仿函数,而不是传递std::function或指向std::function的指针(即这些槽提供额外的功能)。我以不同的形式偶然发现了这个问题here.例如。在那里,使用通用槽指针而不是std:functions的动机是仿函数的生命周期管理。下面的代码说明了这个问题。请参阅assignFunctorPtr(...)方法。#include#includetemplateclassSlot;templateclassSlot{public:typedefRRet_type;public:vi

c++ - 是否可以为 std::array 定义隐式转换运算符?

我正在尝试拥有一个可以隐式转换为std::array的C++类。转换有效,但不是隐式的。#includeclassA{private:std::arraydata;public:operatorstd::array&(){returndata;}operatorconststd::array&()const{returndata;}};intmain(){Aa;a[1]=0.5f;//failstocompileautoit=a.begin();//failstocompileAb;static_cast>(b)[1]=0.5f;//okautoit2=static_cast>(b).

c++ - Node C++ 插件 - 当类型化数组 (Float32Array) 作为参数传递时,如何访问它?

我想使用V8Float32Array数据结构。我该如何初始化它?我也对直接内存访问数据感兴趣。这怎么可能? 最佳答案 已更新现在最好的方法是使用助手Nan::TypedArrayContents.assert(args[i]->IsFloat32Array());Localmyarr=args[i].As();Nan::TypedArrayContentsdest(myarr);//Nowusedest,e.g.(*dest)[0]node-canvas中有一个很好的例子.原始答案,显示了帮助程序为何有用v8API现在变化很快,所以

java - 性能优化 : C++ vs Java not performing as expected

我编写了两个程序来实现一个简单的矩阵乘法算法,一个用C++编写,一个用Java编写。与我的预期相反,Java程序的运行速度比C++程序快大约2.5倍。我是C++的新手,希望就我可以在C++程序中进行哪些更改以使其运行更快提出建议。我的程序从这篇博文中借用了代码和数据http://martin-thoma.com/matrix-multiplication-python-java-cpp.以下是我正在使用的当前编译标志:g++-O3main.ccjavacMain.java以下是当前的编译器/运行时版本:$g++--versiong++.exe(GCC)4.8.1Copyright(C)

c++ - 初始化 std::pair<double, std::array<std::pair<double, double>, 3>>

谁能建议以下代码中std::vector::push_back调用中std::make_pair调用的正确语法:#include#include#includeintmain(){typedefstd::pairPairType;std::vector>>myVector;doubleKey=0.0;PairTypePair1=std::make_pair(1.0,2.0);PairTypePair2=std::make_pair(3.0,4.0);PairTypePair3=std::make_pair(5.0,6.0);myVector.push_back(std::make_pa

c++ - 哪个更好 : returning tuple or passing arguments to function as references?

我创建的代码中有两个函数returnValues和returnValuesVoid。一个返回2个值的元组,另一个接受参数对函数的引用。#include#includestd::tuplereturnValues(constinta,constintb){returnstd::tuple(a,b);}voidreturnValuesVoid(int&a,int&b){a+=100;b+=100;}intmain(){auto[x,y]=returnValues(10,20);std::cout我读到了http://en.cppreference.com/w/cpp/language/st

c++ - 将固定大小内存边界上的 native 代码与 GCC/G++/AS 对齐?

我有一个C函数,其中包含将实现字节码解释器的字节码的所有代码。我想知道是否有一种方法可以在固定大小的边界上对齐内存中的编译代码段,以便我可以直接计算从字节码的值跳转到的地址?有点像数组的工作方式,但我不是从计算的地址读取,而是跳转到它。我知道我必须将执行下一个跳转的代码放在每个“字节码代码”段的末尾,并且我必须使边界大小至少与最大段的大小一样大.如果这甚至可能,我将如何告诉编译器/汇编器(gcc/g++/as)以所述方式对齐? 最佳答案 我意识到这并不是您所要求的,但这是使用GCC实现字节码解释器的标准方法。GCC的“compute

c++ - 从 AS3 学习 C++

我是一名优秀的AS3程序员。我从事游戏工作,这就是我编程的原因。虽然我可以使用Adob​​eAIR完成很多工作,但我目前的理解是学习C++可能是一个不错的选择。如果以后需要的话,我会学习很多有值(value)的低级编程,而且我会更轻松地学习其他面向C的语言。我看到很多信息供那些了解C++而想学习AS3的人使用,但反之则不然。为什么选择C++?跨平台兼容性对我来说很重要,所以在这个交界处我对C#或Objective-C不是特别感兴趣。我也知道Haxe,虽然我喜欢这个概念,但在做了一些研究后,我担心在学习资源和文档有限的情况下将大量时间投入到如此新的东西上。我正在寻找与此主题相关的建议和资