草庐IT

STL_container_type

全部标签

c++ - 在模板类中定义迭代器时出现 STL 编译错误

下面的代码给出了错误:error:type‘std::list>’isnotderivedfromtype‘Foo’error:expected‘;’before‘iter’#includetemplateclassFoo{public:std::list::iteratoriter;private:std::listelements;};为什么这是正确的? 最佳答案 你需要typenamestd::list::iterator.这是因为list取决于模板参数,因此编译器无法知道名称iterator到底是什么它将在其中(好吧,从技术

c++ - 涉及STL排序算法的令人困惑的SegFault

我正在尝试使用STL重新创建编程明珠第15栏中的程序。我正在尝试使用字符串和索引vector创建后缀数组。我将我读取的单词列表记录在一个名为input的字符串中,该字符串充当我在程序开头从stdin读取的以''分隔的单词列表。在我到达代码的排序部分之前,一切都按预期工作。我想使用STL的排序算法,但我对我似乎正在创建的段错误感到完全困惑。我有:vectorwords;和全局变量stringinput;我定义了我的自定义比较函数:boolwordncompare(unsignedintf,unsignedints){intn=2;while(((f当我运行代码时:sort(words.b

c++ - 海湾合作委员会 4.1.2 : error: integer constant is too large for ‘long’ type

我编译了一段关于散列函数的代码并得到了错误:整数常量对于‘long’类型来说太大了。我用谷歌搜索了一下,它说要添加后缀“ULL”,但我确实有ULL作为后缀。这个后缀只有gcc4.4.1支持,我机器上只有gcc4.1.2,不允许安装新的编译器。有什么方法可以更改代码以解决问题吗?谢谢,-托尼unsignedlonglonghash(stringk){//FNVhashunsignedlonglongx=14695981039346656037ULL;for(unsignedinty=0;y 最佳答案 1099511628211对于(3

c++ - STL 容器和不可复制(和不可移动)的对象

由于STL容器要求所有内容都是可复制和可分配的,那么在处理不可复制的对象时首选的习惯用法是什么?我可以想到两种不同的方法:在STL容器中存储(智能)指针而不是对象。摆脱STL容器并实现我自己的列表(例如,每个对象必须包含指向下一个对象的指针)。第二种方法的主要缺点是析构函数的实现(是否应该以递归方式在当前对象之前销毁“下一个”对象?) 最佳答案 SinceSTLcontainersrequirethatallcontentsbecopyableandassignable,whatisthepreferedidiomwhenworki

c++ - "Type"不引用 C++ 上的值

我在OpenFrameworks图稿中遇到此错误。但似乎是一个简单的C++问题。ofVec2fdoesnotrefertoavalue当然,我在使用指针时遇到了问题,但我不明白为什么。我试图改变&->*Canvas4.cppvoidCanvas4::createStuff(){ballCollection.clear();for(inti=0;i.5)dir=-1;myBall=newBall(org,loc,radius,dir,offSet);ballCollection.push_back(*myBall);}//这是Ball类的构造函数;Ball::Ball(ofVec2f&_

c++ - XCode 6.1 - 缺少项目模板(C++ 库和 C++ STL 库)

昨天C++库和STLC++库模板突然从我的XCode6.1安装中消失了。它应该是这样的:现在是这样的:我完全卸载了XCode并重新安装了它,但仍然缺少这些模板。还有其他人遇到同样的问题吗?如何解决? 最佳答案 没关系!选择项目模板的用户界面在XCode6.1中发生了一些变化。以下是创建C++库项目的方法:要创建C++库,请选择库模板(甚至认为描述中说:“此模板构建链接到Cocoa框架的库”。它可能有点令人困惑,但您可以将其更改为C++库下一步)。单击“下一步”,然后您可以选择“框架类型”为“PlainC++Library”、“Coc

c++ - STL C++ 中的内存分配

我对STLC++中的内存重新分配有点困惑。例如,我知道如果我声明一个vector,并继续将元素推回其中,则该vector将在某个时候需要重新分配内存空间并将所有现有元素复制到其中。对于链表,不需要重新分配,因为元素不是连续存储在堆栈中的,每个元素使用一个指针指向下一个元素。我的问题是,C++中的其他STL的情况如何?例如,string、map、unordered_map?他们需要重新分配吗? 最佳答案 (免责声明:标准可能不需要此处指定的所有具体数据结构,但记住它们有助于将规则链接到具体内容)std::string~=std::ve

C++ : Check if the template type is one of the variadic template types

这个问题在这里已经有了答案:Checkifatypeispassedinvariadictemplateparameterpack(3个答案)关闭7年前。假设我们有函数:templatevoidfoo(){...};检查“Kind”类型是否是C++(包括C++1z)中的“Kinds”类型之一的最简单方法是什么?

c++ - 为什么 `const type& variable` 作为函数输入?

我正在将一些函数从Matlab转换为C++,其中有一些与矩阵有关。我在Internet的某处找到了这个简单的函数:typedefstd::vector>Matrix;Matrixsum(constMatrix&a,constMatrix&b){size_tnrows=a.size();size_tncols=a[0].size();Matrixc(nrows,std::vector(ncols));for(inti=0;i谁能解释一下为什么他们使用constMatrix&a而不是Matrixa作为输入?他们是否习惯使用它,或者使用它有什么好处,因为我没有看到2个版本(constMatr

c++ - 不错的简短且可免费下载的 STL 教程

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭8年前。Improvethisquestion我想在面试前复习我的STL知识。谁能推荐简短且可免费下载的STL教程?谢谢。编辑:最好是PDF格式。