草庐IT

EidosValue_Int_vector

全部标签

c++ - 为什么从 size_t 转换为 unsigned int 会给我一个警告?

我有代码:unsignedintlength=strlen(somestring);我正在编译警告级别为4,它告诉我“从size_t到unsignedint的转换,当size_t时可能丢失数据”是typedef对于unsignedint.为什么!?编辑:我刚刚解决了我自己的问题。我是XP用户,我的编译器正在检查64位兼容性。自size_t取决于平台,对于64位,它将是unsignedlonglong,这与unsignedint不同. 最佳答案 因为unsignedint在您的机器上是比size_t更窄的类型。size_t很可能是64

c++ - c++ 中有 64 位 int 这样的东西吗?

是否有将int定义为64位的真实平台/编译器组合?或者这只是用来吓唬像我这样的新程序员,让他们在大小很重要的地方使用int32_t以使其“便携”? 最佳答案 绝对有这样的系统。将来可能会有更多(或可能不会)。您想打赌128位架构上的int是什么吗?维基百科有一个不完整但有用的纲要:http://en.wikipedia.org/wiki/64-bit#64-bit_data_models 关于c++-c++中有64位int这样的东西吗?,我们在StackOverflow上找到一个类似的问

c++ - 反向迭代器错误 : no match for 'operator!=' in 'rcit != std::vector<_Tp, _Alloc>::rend() with _Tp = int, _Alloc = std::allocator'

代码A:vector::const_reverse_iteratorrcit;vector::const_reverse_iteratortit=v.rend();for(rcit=v.rbegin();rcit!=tit;++rcit)cout代码B:vector::const_reverse_iteratorrcit;for(rcit=v.rbegin();rcit!=v.rend();++rcit)coutCODEA工作正常但是为什么代码B通过错误:DEVC++\vector_test.cpp在'rcit!=std::vector::rend()与_Tp=int,_Alloc=s

c++ - 将 vector<string> 转换为 vector<double> 的便捷方法

除了使用变换算法和istringstream之外,C++中是否有任何方便的方法将vector转换为vector?非常感谢您的帮助! 最佳答案 lexical_cast相当“方便”。for(size_ti=0;i(vec[i]));}当然,使用std::transform会变得更加有趣:std::transform(strings.begin(),strings.end(),std::back_inserter(doubles),boost::lexical_cast);//Notethetwotemplatearguments!at

c++ - 用 int main(void) 编译失败; main(int argc, char *argv[]) 成功。为什么?

问题为什么编译具有intmain(void)main函数的程序与编译具有intmain(intargc,char*argv[])主函数,如果程序不使用命令行传递的参数?这个操作系统或编译器是特定的吗?我没有使用mingw和g++得到相同的结果(这很奇怪不是因为wingw是gcc的一个端口)。例子代码#include#include"SDL/SDL.h"intmain(void){return0;}编译命令g++test.cpp;#g++4.4.5i586-mingw32msvc-g++test.cpp;#mingw4.4.4错误(由第二个命令给出。)a(main.o):(.text+0

c++ - 我如何克服这个 C++ vector 排序错误?

这是我试图编译的问题代码:boolTeamMatcher::simpleComparator(Studentfirst,Studentsecond){return(first.numberOfHrsAvailable然后这是我得到的错误:TeamMatcher.C:Inmemberfunction‘voidTeamMatcher::sortRosters()’:TeamMatcher.C:51:error:nomatchingfunctionforcallto‘sort(__gnu_cxx::__normal_iterator>>,__gnu_cxx::__normal_iterato

c++ - 具有两个参数的 vector 构造函数被解析为函数声明

考虑这个例子:#include#include#include#includeintmain(){std::stringsen="abcdefghijkl";std::istringstreamiss(sen);std::vector//declarationinquestionvec(std::istream_iterator(iss),std::istream_iterator());std::copy(vec.begin(),vec.end(),std::ostream_iterator(std::cout,"\n"));}编译器在调用std::copy时抛出错误请求'vec'中

c++ - STL的 vector 调整大小

我找不到这条信息。我在这里处理一个奇怪的情况,我在一个循环中,我可以在任何给定时间获得随机信息。此信息必须存储在vector中。现在每一帧我都必须设置这个vector以确保我不会超出空间(我正在使用索引将值写入vector中的随机点)。现在假设没有办法更改这段代码,我想知道,如果我发送的参数恰好是vector的大小,vector是否“忽略”resize()函数?我在哪里可以找到这些信息? 最佳答案 来自MSDN引用1Ifthecontainer'ssizeislessthantherequestedsize,_Newsize,ele

c++ - 两个 vector 之间的最短旋转方向

我的问题是关于计算二维中两个vector之间的最小角度的方向。我正在用C++制作游戏,其中一个障碍是热寻导弹发射器。我通过计算目标和子弹之间的vector、归一化vector然后乘以它的速度来让它工作。但是,我现在要回到这门课,让它变得更好。我不想立即锁定播放器,而是希望它仅在子弹vector在特定角度(子弹vector和vectorbulletloc->target之间的角度)内时才这样做。否则,我希望它以一定程度缓慢地向目标平移,从而为玩家提供足够的空间来避开它。我已经完成了所有这些(在vb.net项目中,所以我可以简化问题,解决问题然后用C++重新编写)。然而,即使最快的路线是逆

c++ - 如何存储由 std::unique_ptr 给出的抽象类对象的 vector ?

我有一个循环,在这个循环中我使用一个函数将std::unique_ptr返回给一个抽象类的对象。我想通过push_back将这些对象存储到std::vector中。但由于对象是抽象类型,我得到以下错误:error:cannotallocateanobjectofabstracttype为线cells.push_back(std::move(*cell));其中cells是抽象类型的std::vector而cell是类型std::unique_ptr&&cell(我实际上将cell传递给处理程序类)我知道不能实例化抽象类型,而且我正在理解std:move运算符,它需要以某种方式实例化对象