草庐IT

back-stack

全部标签

c# - 是否有任何 C++11 emplace/emplace_back 函数的 C# 模拟?

从C++11开始,可以这样写#include#includestructS{S(intx,conststd::string&s):x(x),s(s){}intx;std::strings;};//...std::vectorv;//addnewobjecttothevectorv//onlyparametersofaddedobject'sconstructorarepassedtothefunctionv.emplace_back(1,"t");对于容器类(System.Collections.Generic.List),是否有任何C++函数的C#类似物,如emplace或empla

java.util.Stack 合适的数据结构?

嗯。我注意到Stack是Vector的一个子类,我认为Vector和Hashtable被认为是“旧”数据结构,因为它们具有内置同步功能,即使您不需要它也是如此。(与不为您提供的列表、map等相比)那是一个类,而不是一个接口(interface)。是否有更现代的推荐替代方案? 最佳答案 java.util.DequeDequescanalsobeusedasLIFO(Last-In-First-Out)stacks.ThisinterfaceshouldbeusedinpreferencetothelegacyStackclass.W

c++ - 防止 std::vector 在 push_back 上调整大小

我有一个std::vector,我知道它永远不必增长——它总是有n元素(不幸的是,n在编译时是未知的时间所以我不能使用std::array)。我能做到:std::vectorv(n);正确地将其容量设置为n。但是当我继续用push_back填充v时,它会自动调整大小为2n。我意识到这是过早的优化,但它困扰着我。有没有办法设置最大大小之类的? 最佳答案 该构造函数没有将vector的容量设置为n,而是创建一个包含n的vector用blah构造的对象的默认构造函数。这可能会让具有Java或.NET背景的人感到困惑,其中ArrayList

C++,使用 vector<int[2]> 我可以 push_back({someNum1,someNum2}) 吗?

我有vector:vectorstoreInventory;//storeInventory[INDEX#]{ITEMNUM,QUANTITY}我想使用push_back()方法将新数组添加到库存vector。类似这样的东西:constintORANGE=100001;constintGRAPE=100002storeInventory.push_back({GRAPE,24});storeInventory.push_back{ORANGE,30};但是,当我尝试使用上面的语法时,出现错误Error:excpetedanexpression。我正在尝试的是不可能的,还是我只是以错误的

c++ - iterator 和 back_insert_iterator 有什么区别?

如果随机访问迭代器可用于访问相对于它们指向的元素的任意偏移位置的元素(有点像指针),为什么它们不能用于像std::copy()这样的通用算法而不是使用back_insert_iterator,两者有什么区别? 最佳答案 std::back_insert_iterator是一种特定类型的output迭代器,它支持push_back操作。当您使用operator=write时,它会将值push_back到底层容器中—因此,从这个意义上说,它充当具有push_back的容器的适配器成员函数。举个例子很容易理解:std::vectorv;s

c++ - 段错误 : stack overflow

这个问题在这里已经有了答案:Segmentationfaultonlargearraysizes(7个答案)关闭5年前。以下发生在linux2.6.32-220.7.1.el6.x86_64和g++4.4.6中。以下代码:#include#includeintPROB_SIZE=10000000;usingnamespacestd;intmain(intargc,char*argv[]){unsignedintnumbers[PROB_SIZE];cout产生以下SIGSEGV:(gdb)运行启动程序:/home/cpd20202/sorting/errorProgramreceive

C++ - "Stack automatic"是什么意思?

在我浏览互联网时,我遇到了thispost,其中包括这个"(Wellwritten)C++goestogreatlengthstomakestackautomaticobjectswork"justlike"primitives,asreflectedinStroustrup'sadviceto"doastheintsdo".ThisrequiresamuchgreateradherencetotheprinciplesofObjectOrienteddevelopment:yourclassisn'trightuntilit"workslike"anint,followingthe"

c++ - 在 C++ 中使用 vector 时 Push_back 导致错误

我在编译这段代码时遇到问题。我正在OSX10.6上使用Eclipse进行编译。该问题似乎仅在使用vector时出现。我似乎根本无法使用push_back函数。每次尝试时,我都会收到错误消息“'.'之前需要构造函数、析构函数或类型转换”token”。以下是我的一些代码片段:#include#include#include#include#includeusingnamespacestd;enumColour{BLACK=0,RED=1,BLUE=2,GREEN=3,PURPLE=4,ORANGE=5,CYAN=6,BLANK=7};classPoint{private:GLfloatxv

c++ - C++ 怎么知道容器类有 push_back 函数?

当我查看std::back_insert_iteratorhttp://en.cppreference.com/w/cpp/iterator/back_insert_iterator它表示将调用容器的push_back方法。它如何知道容器是否有push_back方法?它是否需要一个扩展任何虚拟类的类,它在哪里定义? 最佳答案 Itsaysthecontainer'spush_backmethodwillbecalled.Howdoesitknowifthecontainerhasamethodofpush_back?Doesitre

c++ - ISO C++ 禁止声明没有类型的 'Stack"

我已经设置了以下头文件来创建一个使用数组的堆栈。我在第7行得到以下内容:error:ISOC++forbidsdeclarationof'Stack"withnotype.我以为类型是输入值。感谢你的帮助。谢谢你。#ifndefARRAYSTACKER_H_INCLUDED#defineARRAYSTACKER_H_INCLUDED//ArrayStacker.h:headerfileclassArrayStack{intMaxSize;intEmptyStack;inttop;int*items;public:Stacker(intsizeIn);~Stacker();voidpus