草庐IT

STL-string

全部标签

c++ - 使用 C++ STL 的 DFT(离散傅里叶变换)

我尝试计算此数组x_1的DFT。它一定很简单,但我的值(value)观太低了。我的代码有什么问题?请不要指向其他示例的链接-只是为我自己的代码寻找修复。#include#include#includeintmain(){constunsignedintN=20;constdoublex_1[N]={0,0.3,0.6,0.8,1,1,0.9,0.7,0.5,0.2,0.2,0.5,0.7,0.9,1,1,0.8,0.6,0.3,0};for(unsignedintk=0;ksum(0.0,0.0);for(unsignedintj=0;jmy_exponent(0.0,M_PI/N*(

c++ - 使用带有 STL 容器的 boost.serialization 作为模板参数

我想将boost.serialization与模板化容器类一起使用://MyContainer.htemplatestructMyContainer{Tt;templatevoidserialize(Archive&archive,constunsignedversion){archive&t;}};当我使用STL容器作为模板参数时,例如//Main.cpp...MyContainer>mc;std::ofstreamofs("foo.bar");boost::archive::binary_oarchiveoa(ofs);oa...VisualStudio11提示并显示以下错误消息:

c++ - 排序和连接百万或十亿 STL vector 的最快方法

将数百万或数十亿个STLvector排序并串联成单个STLvector的最佳方法是什么。目前,我的做法是迭代vector并执行每个操作。这是伪代码typedefunsignedlonglongintULLInt;ULLIntN=1000000;vector>vecVec(N,vector());vectorconcatVec;//...//...fillvectorsinsidevecVechere//..wealsogetherethetotalnumberofvaluesinsertedinallvectors(count)//...//reservethespaceconcatV

c++ - 如何在 C++ 中传递 STL 对象的消息,例如 MPI 中的 std::map?

我想使用MPI在C++中传递STL对象,例如std::map和std::list,但我不知道如何实现。 最佳答案 不幸的是,这无法直接实现。您将需要进行某种序列化。既然您提到了MPI,您可能对高性能感兴趣。在这种情况下,使用序列化可能不是最好的主意。所以我会远离更复杂的STL结构,只使用std::vector。 关于c++-如何在C++中传递STL对象的消息,例如MPI中的std::map?,我们在StackOverflow上找到一个类似的问题: https:

c++ - STL 堆栈对象的大小限制

std::stack的大小有限制吗??我正在使用std::stack>作为我的堆栈,当条目数超过大约100万时,我会收到运行时错误。这是由于std::stack的大小限制造成的吗?? 最佳答案 std::stack是一个容器适配器。它只是一些其他容器的前端,这使它看起来像一个堆栈。考虑一下std::vector如果替换名称push可以像堆栈一样对待与push_back和名字pop与pop_back.因此,任何大小限制或类似内容都将是后备容器的结果,而不是std::stack。.std::stack的默认支持容器是std::deque

c++ - 为什么 Boost.Spirit 正确地将标识符解析为 std::string,而不是解析为仅由 std::string 组成的适配结构?

我为标识符定义了一条规则:以字母字符开头,后跟任意数量的字母数字字符。当我直接解析为std::string与包含单个std::string的改编结构时,我得到不同的结果。如果我的语法属性是std::string,Qi会正确地将字符序列调整到其中。但是对于结构,只存储第一个字符。我不太确定这是为什么。(请注意,如果结构是“真正”改编的,或者它是由Fusion内联定义的,这没有区别。)这是一个SSCCE,可配置调试://Options://#defineDEFINE_STRUCT_INLINE//#defineDEBUG_RULE#defineBOOST_SPIRIT_USE_PHOENI

C++11 std::promise 从线程返回 std::string,数据指针看起来已复制未移动

我开始使用C++11标准和内置线程。根据我在获得future值时收集到的信息,它是使用移动运算符完成的,将所有权从原始对象中移走(就像旧的auto_ptr曾经在赋值时所做的那样)。我通过在线程期间打印出std::string对象内的char数组的指针并在main中接收到它后打印指针来测试这一点。但是,指针不同。如果有人能告诉我为什么他们在这个简单的代码中不同以及代码必须是什么样子才能使它们相等,我将不胜感激:#include#include#include#include#include#include#include#includeusingnamespacestd;voidthrf

c++ - 什么是 string array[] = "";意思是为什么它有效?

stringarray[]="";如何将constchar*分配给数组?是否与以下内容相同:stringarray[]={""};??这对我来说很有意义。然而,这仍然不起作用intarray[]=5;那么它们对int数组不起作用有什么区别呢? 最佳答案 这是错误的代码;接受它是你的编译器(可能是gcc/g++?)中的错误。clang给出以下错误(link):a.cpp:5:17:error:arrayinitializermustbeaninitializerliststd::stringarray[]="";^1errorgene

c++ - STL 映射的迭代器++ 复杂性

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭8年前。ImprovethisquestionSTLRB-Tree(setormap)的iterator++操作的复杂度是多少?我一直认为他们会使用索引,因此答案应该是O(1),但最近我阅读了vc10实现并震惊地发现他们没有。要在有序RB-Tree中找到下一个元素,需要时间来搜索右子树中的最小元素,或者如果该节点是左子节点且没有右子节点,则搜索右兄弟节点中的最小元素。这引入了一个递归过程,我相信++运算符需要O(lgn)时间。我对吗?

c++ - 抛出并捕获 std::string

我编写了奇怪的代码,但令人惊讶的是它有效。但是现在我不知道我扔的是什么,我该如何接住它:classDate{private:intday;intmonth;intyear;intdaysPerMonth[];public:Date(intday,intmonth,intyear){intdaysPerMonth[12]={31,28,31,30,31,30,31,31,30,31,30,31};if(isValidDate(day,month,year)){this->day=day;this->month=month;this->year=year;}else{throwstd::s