草庐IT

const_object

全部标签

c++ - 将返回的迭代器转换为 const

我有以下for我的代码中的语句:for(autoIter=Target.begin(),IterEnd=std::stable_partition(Target.begin(),Target.end(),Check);Iter!=IterEnd;++Iter){/*loopstatement*/}重点是循环不会修改容器的元素,因此将迭代器声明为const_iterator是有意义的.我可以轻松解决第一次使用cbegin()的问题,但第二个更复杂。我不能申报cbegin()和cend()里面stable_partition,因为当然stable_partition需求nonconst_i

c++ - 海湾合作委员会 : C++11 inline object initialization (using "this") does not work when there is a virtual inheritance in hierarchy

当在初始化中使用此指针并且在层次结构中存在虚拟继承时,C++11内联对象初始化不起作用(在GCC中)。这可能是GCC的错误吗(因为它在CLang中工作)?还是C++11标准本身的差距?示例(可以在here中尝试),当使用GCC编译以下代码时:FieldIndexm_inB{"inB",this};不会被执行。但它会在使用CLang编译时执行。变通方法:从FieldIndexContainer派生A作为虚拟#include#include#includeusingnamespacestd;classFieldIndexContainer{public:classFieldIndex{pu

c++ - 基本问题 : Pointers to objects in unordered_maps (C++)

我是C++编程的新手,非常感谢没有假定太多先验知识的回复。感谢这里的建议,我创建了一个无序map:typedefstd::tr1::unordered_maphmap;此映射中的数据是指向Strain类实例的指针。一旦创建了这些实例,我就创建了指向它们的指针,然后将这些指针添加到我的哈希表(hmapstrainTable)和另一个vector(vectorliveStrains),例如,stringMRCA;for(intb=0;bStrain类的实例永远不会被删除,指向它们的指针也不会从strainTable中删除。指针偶尔会在vectorliveStrains和vectordead

c++ - 在 C++ 中添加 const-ness

这个问题在这里已经有了答案:关闭12年前。PossibleDuplicate:Istheresomeninjatricktomakeavariableconstantafteritsdeclaration?考虑以下最小示例:voidMutateData(std::string&);intmain(){std::stringdata="somethingthatmakessensetohumans.";::MutateData(data);//Mutates'data'--e.g.,onlychangestheorderofthecharacters.//Atthispoint,'dat

c++ - 我的代码能否使用 'T' 或 'const T &' 特化,以可用者为准?

我们正在与一个内部图书馆合作,其中有一个StringBuilder用于转换VariableValue列表的类对象变成一个字符串。VariableValue对象可以从任意类型构造(通过专门化convertVariable模板函数)。这是描述场景的代码:structVariableValue{//Constructa'VariableValue'object,avarianttypewhichcanrepresentvaluesof//oneoffourtypes:string,number(integer),booleanandfloatingpoint.explicitVariable

C++和const reference to temporary binding问题(在C++0X中实现D语言传值传引用规则)

我想知道可以在多大程度上模仿C++中按值传递和按引用传递规则的D语言规则。有关背景,请参阅以下两个引用资料(主要是Alexandrescu):http://bartoszmilewski.wordpress.com/category/d-programming-language/page/2/和http://groups.google.com/group/comp.std.c++/msg/303e3bf2407a7609?其中一个关键区别是,在D中,const引用不绑定(bind)(作为非const引用)到临时对象。但是,我不知道有什么方法可以定义泛型类X,从而导致以下代码无法编译:v

c++ - 如何在 c++ 中的 vector<Object*> 中搜索特定变量?

我是C++中vector的新手,我在其中使用指针。如果变量已经存在于vector中,我想搜索它,但我不确定该怎么做。B.cppvectorvec_Animal;vector::iteratorite_Animal;我要比较的是Animal->getID();我还有一个问题。当用户输入值时,有什么办法可以限制吗?我的意思是,如果有一个值year那么,我希望它只键入1000~2011。如果用户输入999,那就错了。可能吗?干杯 最佳答案 您可以使用std::find_if算法。可能,您正在使用std::vector::push_back

C++ const 与 std::pair 的正确性

我正在维护一个容器类,其接口(interface)类似于std::map/std::unordered_map.接口(interface)声明存储std::pair(即value_type是什么)。然而,在内部,该实现存储了一个排序的std::pair数组。.当前的实现使用reinterpret_cast实现迭代器。我的问题是,是否有更好的选择?开始存储std::pair的数组不可能,因为实现需要复制数组中的元素来实现插入和删除。它执行此操作的方法之一是使用std::sort.编辑虽然我相信reinterpret_cast调用未定义的行为(或定义的实现?)我还没有遇到过这样不起作用的编

c++ - Objective-C++ C++ 对象析构函数

我有一个Objective-C类,其中一个变量是C++对象(我的大部分代码是C++,但我需要一些ObjC类来与iOS库集成)。Objective-C++是否保证在销毁Objective-C对象时C++对象将被正确销毁?一些示例代码:classMyCppClass{//...};@interfaceMyObjCClass:NSObject{MyCppClassmyCppObject;//isitoktodoit?}//...@end 最佳答案 是的。-dealloc方法调用后,调用了一个隐藏的.cxx_destruct方法。此方法调用

c++ - 具有 const 不可复制元素的元组

我需要创建一个std::tuple其中XYZ不可复制。这样的事情甚至可能吗?我当前的代码autotest()->std::tuple{returnstd::make_tuple(XYZ());}在VisualStudio2010中导致C2248...我发现这很可疑,因为我正在构建具有R值的元组,所以我假设移动构造会启动... 最佳答案 您的问题是该元素既不可复制又const.constXYZ元素表现为constXYZ成员;通过5.2.5p4访问constXYZxvalue上的元素将产生具有unioncv资格的xvalue,即具有有效