草庐IT

random_int

全部标签

c++ - 使用累加对包含 long long int 的 vector 求和

#include#include#include#includeusingnamespacestd;intmain(){intN;cin>>N;longlongintx,sum=0;std::vectorv;for(inti=0;i>x;v.push_back(x);}/*vector::iteratoritr;itr=v.begin();for(itr=v.begin();itr我的程序使用accumulate返回抽象值,但如果我使用for循环,答案就来了。 最佳答案 std::accumulate有一个小陷阱,即您传递的初始值。

c++ - 从 int 到 uint8_t 的隐藏缩小转换

考虑以下代码:#includeclassA{public:explicitA(uint8_tp_a){m_a=p_a;};uint8_tget_a()const{returnm_a;}private:uint8_tm_a;};intmain(){Aa{0x21U};Aaa{0x55U};uint8_tmask{a.get_a()|aa.get_a()};return0;}当我尝试编译这个(gcc5.4.0)时,我得到以下错误:main.cpp:Infunction‘intmain()’:main.cpp:20:28:warning:narrowingconversionof‘(int)

C++ - 运算符重载错误 C4430 : missing type specifier - int assumed

我使用Borland5.5编译我的代码,没有弹出任何错误。但它无法正常运行,所以我决定使用VisualStudio2010来调试我的程序。VisualStudio给我这个错误:Error1errorC4430:missingtypespecifier-intassumed.Note:C++doesnotsupportdefault-intc:\users\johnny\documents\visualstudio2010\projects\stack_linkedlist\stack_linkedlist\classstack.cpp1111STACK_LinkedList它指向我的运

c++ - 交换在 int 的情况下失败,在 string 的情况下有效

#include#include#includeintmain(){std::stringstr1="good",str2="luck";swap(str1,str2);/*LineA*/intx=5,y=3;swap(x,y);/*LineB*/}如果我评论B行代码编译(http://www.ideone.com/hbHwf)而评论A行代码编译失败(http://www.ideone.com/odHka)我得到以下错误:error:‘swap’wasnotdeclaredinthisscope为什么我在第一种情况下没有得到任何错误? 最佳答案

c++ - 如何使用 SSE 将 _m128i 转换为 unsigned int?

我做了一个图像分色的功能。//=(#defineARGB_COLOR(a,r,g,b)(((a)在第一行中,我将颜色解包为4个float,但我找不到正确的方法来进行反向操作。我搜索了SSE文档,找不到_mm_cvtepu8_epi32的逆向有吗? 最佳答案 _mm_shuffle_epi8和_mm_cvtsi128_si32的组合是您所需要的:staticconst__m128ishuffleMask=_mm_setr_epi8(0,4,8,12,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1);UINTco

c++ - 将int转换为指针

我想将int值保存到一个指针变量中。但是我得到一个错误:#includeusingnamespacestd;intmain(){int*NumRecPrinted=NULL;intno_of_records=10;NumRecPrinted=(int*)no_of_records;//我试过这样做但我得到0作为返回:intmain(){intdemo(int*NumRecPrinted);intnum=2;demo(&num);coutNumRecPrinted返回0 最佳答案 有时将非指针值“编码”为指针很有用,例如当您需要将数据

c++ - 如何按对的第二个值对 set<pair<unsigned int, double>> 进行排序?

正如标题所说,我构建了一个set的pair我需要按doublevalue排序的值(第二):set>s 最佳答案 你应该使用比较器:structCmp{booloperator()(constpair&a,constpair&b){returna.second然后您可以像这样定义您的集合:set,Cmp>your_set; 关于c++-如何按对的第二个值对set>进行排序?,我们在StackOverflow上找到一个类似的问题: https://stackove

c++ - std::unordered_map::begin(int n) 行为

这是我正在运行的代码,使用g++4.6和-std=c++0xstd::unordered_mapum;um.insert(std::make_pair(42,43));um.insert(std::make_pair(342,343));um.insert(std::make_pair(142,143));um.insert(std::make_pair(242,243));for(autoe:um)std::cout这打印:24234242142现在我可以使用um.begin()->first或um.begin(0)->first访问242。可以使用um.begin(1)->firs

Java 内联 int 交换。为什么这只适用于 Java

我被要求在不使用临时变量或不使用xor的情况下编写交换,我想到了这个。在Java中,这是可行的,但在C/C++中,这是行不通的。我的印象是这总是有效的,因为'|'左侧的'a'的值将存储在一个寄存器中,然后对“a”的赋值将抵消对“b”的赋值的影响。inta=5;intb=-13;b=a|(0&(a=b)); 最佳答案 您正在修改一个变量并在没有插入序列点的情况下读取它的值。b=a+0*(a=b);//readinga'svaluemodifyinga这是未定义的行为。您无权对代码的作用抱有任何期望。

c++ - 枚举值 (int) 到类型的动态映射

看来这个问题在我们的工作中很常见。我们通过网络发送一个int或enum值,然后我们收到它,我们想创建/调用一个特定的对象/函数。最简单的解决方案是使用switch语句,如下所示:switch(value){caseFANCY_TYPE_VALUE:returnnewFancyType();}它工作正常,但我们会有很多这样的开关block,当我们创建新的值和类型时,我们需要更改所有这些。这似乎是对的。其他可能性是使用模板。但我们不能,因为枚举的值是在运行时定义的。是否有任何正确的设计模式或任何正确的方法?这似乎是每天编码中一个非常普遍和普遍的问题......