草庐IT

type1Vector

全部标签

C++ 编译错误枚举 "does not name a type"

以下代码:foo.h#include"bar.h"classfoo{public:enummy_enum_type{ONE,TWO,THREE};foo();~foo(){}};foo.cppfoo::foo(){inti=bar::MY_DEFINE;}酒吧.h#include"foo.h"classbar{public:staticconstintMY_DEFINE=10;foo::my_enum_typevar;bar(){};~bar(){};};让g++编译器提示my_enum_type“没有命名类型”。为什么?所有header都有多个包含定义(为清楚起见,此处未显示)。谢谢

c++ - 在 set<int> 与 vector<bool> 与 vector<boolean_t> 之间进行选择以用作位图(位集/位数组)

给定一系列索引(标识符),我想将每个索引映射到一个bool值,即://interfacepseudocodeinterfacebitmap{boolidentifier_is_set(unsignedintid_idx)const;voidset_identifier(unsignedintid_idx,boolval)const;};这样我就可以设置和查询每个ID(索引)是否已设置,您更喜欢用什么来实现它?我认为这叫做位数组或位图或位集,如果我错了请纠正我。假设最大标识符是预先确定的并且不大于1e6(1m),可能更小(10k-100k)。(这意味着sizeof(int)*maximu

C++ 行到 vector

哇,我今天到处都是问题,如果它们似乎重叠,我深表歉意,但每个问题都会有另一个问题......因为一件事行不通......但我应该使用一些东西其他……等无论如何,我有一个文本文件:63.02.5-1.50.01.74.06106是第二行中“float”的数量(3.0、2.5等...)3.0,2.5,-1.5都是一系列的float。6和10只是2个整数。我有一个vectorstd::vectornumbers;我需要做的就是将第二行输入数字。所以现在我有ifstreammyfile(filename.c_str());我可以简单地做一个myfile>>来获取第一个值(6)但是我将如何将第二

c++ - 从 vector 中调用派生类函数 (c++)

我有两个类:classObject{public:Object();virtualvoidupdate();virtualvoiddraw();private:protected:intx,y,tick;}和classUnit:publicObject{public:Unit();voidupdate();private:protected:}然后我在单独的.cpp文件中定义构造函数和函数。这是对象的定义:Object::Object(){x=y=0;};Object::update(){tick++;};Object::draw(){//Allmydrawcodeisinhere.}

对象被推回并且函数退出后,C++ vector 推回崩溃

问题是另一个访问vector并删除迭代器的类的愚蠢错误。与下面的代码无关。抱歉浪费您的时间。我一定是漏掉了一些基本的东西。我有一个函数可以创建一个对象,操作它的数据,然后将它插入一个vector中。函数退出的那一刻,程序崩溃并出现SIGSEV,我只能盯着(Kdevelopgcc4.5gdb)看:/***Thedtoronlyerasestheelements,andnotethatifthe*elementsthemselvesarepointers,thepointed-tomemoryis*nottouchedinanyway.Managingthepointeristheuser

c++ - 在 C++ std::<vector> 容器中存储多种类型结构的模式

我有一个表示火车的数据结构,它可以由多种类型的汽车组成,例如火车引擎、运粮车、客车等:structTrainCar{//...Colorcolor;std::stringregistration_number;unsignedlongdestination_id;}structPowerCar:TrainCar{//...constRealPowerCar&engine;}structCargoCar:TrainCar{//...constRealCargoCar&cargo;boolfull;}std::vectorcars;cars.push_back(newTrainCar(..

c++ - 编译器警告 : lambda return type cannot be deduced

考虑这个例子:#include#includeintmain(){std::stringstr="abcde4fghijk4l5mnopqrs6t8uvwxyz";std::stringstr2;std::remove_copy_if(str.begin(),str.end(),std::back_inserter(str2),[](char&c){if(std::isdigit(c))returntrue;//使用GCC4.6.1,这可以很好地编译并打印出预期的输出(字母表),但我收到一条警告说“只有当return语句是函数体中的唯一语句时,才能推导出lambda返回类型”.现在,我

c++ - VS2010 中的 "redefinition; different type modifier"

我正在尝试编译我在visualstudio中下载的一些代码。该代码适用于msvc6,我将其导入VS2010。该代码用于通过编译一个DLL来为labview提供ASIO支持。见here对于整个代码。构建时出现以下错误:“错误C2373:‘_pctype’:重新定义;不同的类型修饰符。”代码片段如下:unsignedshort_Ints[512];unsignedshort*_pctype=_Ints;如果有人要从我提供的链接中引用代码包,这是来自文件GenMonCIN.c 最佳答案 错误消息试图告诉您_pctype已在其他地方定义。它

c++ - 将字符串 vector 连接到 std::ostream(如 boost::join)

我有一个字符串vector,我想将它输出到流(实际上是文件流)。我想在vector元素之间有一个分隔符。有一种方法可以使用标准ostream_iteratorstd::vectorstrs;std::ostream_iteratorout_file_iterator(out_file,delim);std::copy(strs.begin(),strs.end(),out_file_iterator);我不喜欢这种方式,因为each元素后有一个delim文本,但我不需要有一个delim在最后一个元素之后。我想使用类似boost::join的东西。但是boost::join返回字符串,而

c++ - 在对象 vector 上调用成员函数

给定一个vector,其中Object有一个函数run(),有没有办法调用run()在for_each,仅使用标准函数/模板?请注意run()不是静态函数,它实际上应该转换被引用的对象(当然我的小例子不是这样)我知道boost::lambda方式classObject{public:intrun(){/*changeobjectstate*/}};vectorv(10);for_each(v.begin(),v.end(),bind(&Object::run,_1));但我很好奇这是否是一种标准(非Cxx11)方法。 最佳答案 有(