草庐IT

value_iter

全部标签

c++ - 为什么会出现运行时错误 : Vector erase iterator outside range

我遇到了以下代码的奇怪运行时错误:#include#includeusingstd::vector;structData{intid;};intmain(){vectormylist;Datam;m.id=10;mylist.push_back(m);mylist.erase(std::remove_if(mylist.begin(),mylist.end(),[](constData&m){returnm.id>100;}));return0;}错误说:Vectoreraseiteratoroutsiderange我不是在解决了类似Ref1的问题之后,Ref2但意识到问题的原因以及我

c++ - 如何从CGAL中的Edge_iterator获取源点和目标点

我对某些点进行了Delaunay三角剖分,并希望按长度升序迭代其中的所有边,以构建最小跨度线程。我试过以下方法,但无法编译:typedefCGAL::Exact_predicates_inexact_constructions_kernelK;typedefCGAL::Delaunay_triangulation_2T;typedefK::Point_2P;typedefT::Vertex_handleVh;typedefT::Vertex_iteratorVi;typedefT::Edge_iteratorEi;boolsortFunction(Eia,Eib){K::FTla,lb

c++ - QtableWidget : How to find value in specific column

我需要使用qtablewidget检查特定值是否在特定列中。在我的例子中,我需要检查第一列ID是否已经存在,如果是,我需要包含行的编号来更新该行,否则我想添加该行。QT有没有提供查列或者shou的解决方案 最佳答案 我假设您正在寻找第一列中的值(这就是为什么item(int,int)中的第二个参数为0)并且表名是myQTableWidgetintrows=myQTableWidget->rowCount();boolfound=false;for(inti=0;iitem(i,0)->text()=="Something"){//w

c++ - 为什么我不能用 const_iterator 调用模板基类构造函数?

这个问题在这里已经有了答案:WhereandwhydoIhavetoputthe"template"and"typename"keywords?(8个答案)关闭8年前。由于某些原因,下面的代码给出了错误Symbol'TemplateBase'couldnotberesolved.:templateclassTemplateBase{TemplateBase(std::map::const_iteratoranIterator){}};classSubClass:publicTemplateBase{SubClass(std::map::const_iteratoranIterator)

c++ - 如何编写模板将 vector 转换为 Json::Value (jsoncpp)

我写了一个模板(如下所示)但是编译失败templateclassiterable>Json::Valueiterable2json(constiterable&cont){Json::Valuev;for(constt&elt:cont){v.append(elt);}returnv;}std::vectorvec{1,2,3};Json::Valuev=iterable2json(vec)错误C3312:找不到类型“conststd::_Vector_val”的可调用“开始”函数与[_Val_types=std::_Simple_types]参见正在编译的函数模板实例化'Json::

c++ - 如何在 C++ 中为不同的迭代器 value_types 重载函数

我想在C++11中实现一个带有一对迭代器的模板函数。如果传递了一对迭代器,其值类型是任意类型的std::pair,则实现应该做一些特殊处理。我试图提出以下定义://arbitraryvaluetypestemplatevoidprocess(Iterbegin,Iterend){for(Iteriter=begin;iter!=end;++iter){std::cout::value_type,std::pair>::value>::type*=0>voidprocess(Iterbegin,Iterend){for(Iteriter=begin;iter!=end;++iter){s

c++ - 从 json-spirit 获取值(value)

我正在使用Json-Spirit库,但是我不确定如何在不遍历每个名​​称-值对的情况下从对象中读取值。如果我有一个这样的对象:{"boids":{"width":10,"count":5,"maxSpeedMin":2,"maxSpeedMax":80,"maxForceMin":0.5,"maxForceMax":40}}例如,如何通过名称访问width值? 最佳答案 json_spirit添加了对std::map的支持,以便您可以查找值。json_spirit下载中的项目之一是json_map_demo。这将帮助您更好地理解它。

c++ - 如何转发声明 boost::ptree::iterator

我想在我的项目中使用boostptree,但由于ptree.hpp导致包含另外1000个头文件,这大大增加了编译时间(例如从1秒到7秒),并且因为它在20多个不同的cpp文件中需要这是NotAcceptable(预编译的header不会改善太多)。所以我正在考虑将boostptree封装在我自己的类中,比如//myptree.h#includeclassmyptree{private:boost::property_tree::ptree*m_tree;public:...//addingnew(singlevalue)memberstothethetreevoidput(consts

C++ : syntax for passing iterator to a function?

我正在制作一个类,它是一种容器,我想制作一个可以采用“第一个”和“最后一个”迭代器的构造函数,如std::vector和其他标准容器。正确的语法是什么?(我想要一个模板函数,它可以接受任何可用的第一个/最后一个迭代器类型(就像我认为的标准库)。非常感谢!举个例子,我想要这样的东西:templateMyClass(...first,...last)但是……是什么?非常感谢。关于第一个答案:我想要一个将迭代器作为参数的特定构造函数(因为我已经有了将值和指针作为参数的构造函数)编辑:这样可以吗?templateMyClass(std::iteratorfirst,std::iteratorl

c++ - 是否可以推断出 std::insert_iterator 包含的类型?

我有一个需要模板化迭代器类型的函数。它当前取消引用迭代器以检查被迭代的类型。templatevoidfunc(Iteratori){//Inspectthesizeoftheobjectsbeingiteratedconstsize_ttype_size=sizeof(*i);...}我最近发现一些标准迭代器类型,例如std::insert_iterator将*i定义为对i的简单引用.即sizeof(*i)是迭代器本身的大小;与sizeof(i)或sizeof(***i)相同是否有一种通用方法(支持C++03)来确定任何标准迭代器正在迭代的对象的大小或类型?