草庐IT

stl-format

全部标签

c++ - g++ 中的 SGI STL 绳索?

似乎在我的/usr/include/c++/4.5.1/ext/rope(和ropeimpl.h)中有rope的实现。我将它与SGISTL进行了比较,代码似乎与代码库几乎相同。我不知道它的状态或者它是否正常工作。我也不知道这是super陈旧的代码,还是正在进行中的代码无论如何,我还没有找到任何关于如何使用它的引用资料(如果功能正常的话)。你知道我错过了什么吗?有我可以使用的用法示例吗?编辑如果您看到cvshistoryhere,您会看到上次事件是4个月前,看起来不太活跃,但也没有被遗弃。 最佳答案 它直接取自SGI代码,并且仍在维护

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++ - STL 映射的迭代器++ 复杂性

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

c++ STL map::operator []在被删除的条目上完成

std::mapbar;intfoo(intkey){bar.erase(key);return1;}intmain(){bar[0]=foo(0);return0;}这段代码是用GCC4.8编译的,在用电围栏检查内存使用情况时会出现段错误。LD_PRELOAD=libefence.so.0.0./a.out问题来自于编译器生成的代码开始在映射中分配一个新条目,然后执行foo()以获取要放入bar[的值0]。在运行foo()时,条目被销毁,代码最终通过写入未分配的内存结束。操作的排序方式取决于编译器实现,还是由C++当前标准指定? 最佳答案

c++ - 使用自定义类的 C++ STL 映射的运算符重载

我对在C++中使用STLmap有疑问。我知道将map与自定义类一起使用我需要重载“#include#includeusingnamespacestd;structbox{inte,s,w;box():e(-1),s(-2),w(-3){}booloperatorhashtable;boxb;hashtable[b]=1;return0;}在这里,我非常简单地重载了booloperator还有其他方法。所以我的问题是,这样做,重载我在这里的唯一动机是存储成对的box和int(请参阅main函数),以便我可以在O(log(n))时间内访问它们。更新我认为有一个糟糕的比较器不会影响map的访

c++ - 如何在 C++1z 中使用实验性并行 STL?

我想尝试C++17的并行STL。但是,我在libc++中找不到experimental/execution_policy。我该如何尝试?我正在尝试http://en.cppreference.com/w/cpp/experimental/reduce,它说我应该包括这些文件,但我找不到execution_policy。#include安装libc++后(我按照http://libcxx.llvm.org/docs/BuildingLibcxx.html),我尝试了以下命令,但没有成功。$clang++-3.5-std=c++1ztest.cpp-lc++experimentaltest