草庐IT

vector_tostr

全部标签

c++ - std::vector 的自包含、STL 兼容实现

VisualStudio2010及更早版本附带的std::vector的实现具有众所周知的特殊性:resize方法具有以下签名(C++03兼容):voidresize(size_typenew_size,value_typevalue);代替大多数其他STL实现(如gcc的STL或STLport)早在C++11之前就使用的符合C++11的签名:voidresize(size_typenew_size,constvalue_type&value);第一个变体的问题是,在某些情况下,如果value_type具有对齐规范,它将无法编译:struct__declspec(align(64))S

c++ - 如何将 std::vector<std::reference_wrapper<T>> 转换为 std::vector<T>

我有一个本地std::vector>现在我想返回其元素的真实拷贝(即std::vector)。有没有比循环更好的方法?例子:std::vectorfoobar(){std::vector>refsToLocals;/*dosmthwithrefsToLocals*/std::vectorcopyOfLocals;for(autolocal:refsToLocals)copyOfLocals.insert_back(local.get());returncopyOfLocals;} 最佳答案 看来,最明显的方法是构造一个std::ve

c++ - 使用 std::tuple 构建基于 vector 的数据集请引用 variadic-templates

我想制作一个类模板如下:templateclassVectorTuple;例如,VectorTuple将实例化为Tuple,vector,vector>我对可变参数模板不熟悉。最糟糕的方法是从中复制代码并修改它。有没有一种简单的方法可以直接使用std::tuple来定义我的VectorTuple。 最佳答案 如果您正在寻找typedefvariadic-templates类型,那么,templateusingVectorTuple=std::tuple...>;现在你可以像这样使用它了VectorTupleobj;

c++ - 性能:Matlab 与 C++ 矩阵 vector 乘法

序言前段时间我问了一个关于Matlab与Python性能的问题(Performance:MatlabvsPython)。我很惊讶Matlab比Python更快,尤其是在meshgrid方面。在讨论该问题时,有人指出我应该使用Python中的包装器来调用我的C++代码,因为我也可以使用C++代码。我在C++、Matlab和Python中有相同的代码。在这样做的同时,我再次惊讶地发现Matlab在矩阵组装和计算方面比C++更快。我有一个稍微大一点的代码,我正在研究一段矩阵-vector乘法。较大的代码在多个实例中执行此类乘法。总体而言,C++中的代码比Matlab快得多(因为Matlab中

C++ 用另一个 vector 初始化 vector

考虑类Foo和Bar:classFoo{public:Foo()=default;Foo(int);};classBar{public:Bar()=default;Bar(conststd::vector&v);private:std::vectordata_;};如何编写构造函数Bar(conststd::vector&v)这样v的每个元素可以初始化一个Foo对象Foo(int)? 最佳答案 您可以使用:Bar(conststd::vector&v):data_(v.begin(),v.end()){}

c++ - std::vector 的 posix_memalign

有没有办法在不先创建vector的本地实例的情况下对std::vector进行posix_memalign?我遇到的问题是我需要告诉posix_memalign分配多少空间,我不知道怎么说sizeof(std::vector(n))实际上没有创建新的vector。谢谢 最佳答案 嗯,这里有两种尺寸。vector本身通常只是一个或两个指向某些已分配内存的指针,以及跟踪大小和容量的无符号整数。还有分配的内存本身,这就是我认为你想要的。您要做的是创建一个vector将使用的自定义分配器。到时候,它将使用您的分配器,您可以拥有自己的特殊功能

c++ - 在 Rcpp 中找到 vector 的最小值

从昨晚开始,我一直在尝试Rcpp和inline,到目前为止我真的很享受。但总的来说,我对C有点陌生,目前只能做一些基本的事情,而且我很难在网上找到函数等方面的帮助。我正在研究的是一个函数,它可以在全局环境中找到一个vector的最小值。我想到了:library("inline")library("Rcpp")foo但似乎应该有更简单的方法来做到这一点,而且它比which.max()慢得多system.time(replicate(100000,bar()))usersystemelapsed0.270.000.26system.time(replicate(100000,which.m

c++ - 从 vector<string> 中查找字符串的第一次出现

我有一个vectorvectorStrings具有值:ta,bc,ac,st,cer,cda.我想找到输入字符串中vector中任何字符串的第一次出现。例如InputStr="thiscertainlyhelps";对于vector中的给定字符串,我想要一种方式来表示"cer"第一次出现在位置5.intmin=9999999;stringfirst;for(inti=0;i此实现有效,但我想知道是否存在使用boost库或std库执行此操作的更优雅的方法。我在Windows上工作并使用VisualStudio2010。 最佳答案 这是

C++:我可以在函数调用期间将 vector <derived_class> 转换为 vector <base_class> 吗?

我有一个现有的类和函数,如下所示:Classbase_class{...}voidFunc(...,vector&vec_b,...){//insidethefunction,thevectorvec_bisbeingre-organizedandre-sized}我定义了一个派生类,如下所示:Classderived_class:publicbase_class{...}现在,不改变函数Func,我可以传递一个vector吗?进入Func,例如:voidmain(){vectord;Func(...,d,...);}派生类d经历同样的重组和重新调整规模?我知道我可以在函数调用中毫无问

c++ - 使用转换将 vector<char> 转换为字符串

我想转换一个vector到std::string并以一种方式进行转换。我快到了,但下面代码的结果是vector,而我想要一个字符串(vector中所有字符串部分的串联)。有关详细信息,请参阅我的代码示例。stringConvertHexToAscii(constcharinput){std::ostringstreamoss;oss(input);returnoss.str();}vectorreadBuffer;//thisismyinputreadBuffer.push_back(0x1c);readBuffer.push_back(0x09);vectorresultVec;st