草庐IT

preparing-for-handsets

全部标签

c++ - 使用 g++ 编译 C++ 时出现 'hides constructor for' 警告是什么意思?

使用以下代码:#includestructmy_struct{inta;intb;my_struct();};my_struct::my_struct(void){printf("constructor\n");}voidmy_struct(void){printf("standardfunction\n");}intmain(intargc,char*argv[]){structmy_structs;s.a=1;s.b=2;printf("%d-%d\n",s.a,s.b);return0;}我在使用g++-Wshadowmain.cpp编译时收到警告:main.cpp:15:20:

c++ - 海湾合作委员会 4.1.2 : error: integer constant is too large for ‘long’ type

我编译了一段关于散列函数的代码并得到了错误:整数常量对于‘long’类型来说太大了。我用谷歌搜索了一下,它说要添加后缀“ULL”,但我确实有ULL作为后缀。这个后缀只有gcc4.4.1支持,我机器上只有gcc4.1.2,不允许安装新的编译器。有什么方法可以更改代码以解决问题吗?谢谢,-托尼unsignedlonglonghash(stringk){//FNVhashunsignedlonglongx=14695981039346656037ULL;for(unsignedinty=0;y 最佳答案 1099511628211对于(3

c++ - C++中基于范围的for循环

C++11中可用的“foreach”语法风格似乎允许在不知道数组实际大小(元素数量)的情况下进行数组迭代。我假设,因为它是新标准的一部分,所以这是完全安全的,即使对于C数组也是如此。通常,在操作C数组之前,您还必须单独知道它的大小,但我希望任何对这种新的C++技术有经验的人都可以验证它是否完全按照您的预期工作:externfloatbunch[100];for(float&f:bunch){f+=someNumber;}关于此技术的非明显副作用或缺点,我应该了解什么吗?它在我看到的代码中显示不多,可能是因为大部分代码是在标准出现之前编写的。想要确保它的罕见使用不是因为其他一些不为人知的

c++ - For 遍历模板参数/类型

我想为几种可能类的几种组合编写基准代码。如果我自己编写每个组合,它就会变得无法维护。因此,我正在寻找一种通过模板自动组合每种类型的方法,类似于以下伪代码:for(typenameHashFuction:Sha256,Sha512,Sa512_256,Sha3_256,Sha3_512){for(typenameKeyingWrapper:TwoPassKeyedHash,OnePassKeyedHash,PlainHash){for(typenameInstantiatedGetLeaf:GetLeaf,GetLeaf){for(typenamealgorithm:algA,algB,

C++11 future.wait_for() 总是返回 future_status::timeout

我有一个C++11程序来检查一个数是否为素数。程序等待准备就绪的future对象。准备就绪后,程序会告知future对象的提供者函数是否认为该数字是质数。//futureexample#include//std::cout#include//std::async,std::future#include//std::chrono::millisecondsconstintnumber=4;//444444443//anon-optimizedwayofcheckingforprimenumbers:boolis_prime(intx){for(inti=2;ifut=std::async

深入理解 Java 循环结构:while、do while、for 和 for-each 循环

Java循环循环可以执行一个代码块,只要达到指定的条件。循环很方便,因为它们节省时间,减少错误,并使代码更易读。JavaWhile循环while循环会循环执行一个代码块,只要指定的条件为真:语法while(condition){//要执行的代码块}在下面的示例中,只要变量(i)小于5,循环中的代码将一遍又一遍地运行:示例inti=0;while(i注意:不要忘记增加条件中使用的变量,否则循环永远不会结束!Do/While循环do/while循环是while循环的变体。此循环将在检查条件是否为真之前执行一次代码块,然后只要条件为真,它就会重复执行循环。语法do{//要执行的代码块}while(c

c++ - 如何使用 for 循环通过反向迭代器调用删除

关于此处提供的答案:Howtocallerasewithareverseiterator在带有-std=c++11的g++4.8.4中编译时,以下结果会导致段错误(在++it上)。我是不是误解了答案?std::maptestmap;testmap[0]=1;for(autoit=testmap.rbegin();it!=testmap.rend();++it){testmap.erase(std::next(it).base());} 最佳答案 erase使迭代器无效,你必须从erase的返回中重建它:it=std::map::re

c++ - 如何让 for_each 使用模板?

我是c++的新手,正在尝试了解for_each的工作原理。所以我想看看它是如何与模板一起工作的,并尝试了这段代码,但它给出了一个错误当我尝试在main中使用foreach时,它正常工作templatevoidforEachTest(Ta[]){for(intx:a)cout 最佳答案 Iamnewtoc++andamtryingtounderstandhowfor_eachworks如果您指的是range-basedfor-loop作为for_each这里,它只是iteratorbasedloop的语法糖,适用于定义了begin和e

【VSCODE】vscode远程连接错误(waiting for server log...)远程主机可能不符合glibc和libstdc++ VSCode服务器的先决条件

网上的方法我都试了一遍,内存也没满好好的,都不能用最后选择把VScode装回1.85版本,瞬间就能用了下载地址

c++ - 为什么 STL 中没有针对每个集合类型的 for_each 成员函数?

例如:v.for_each([](inti){printf("%d\n",i);});如果比常用的更优雅和可读:std::for_each(v.begin(),v.end(),[](inti){printf("%d\n",i);});标准中缺少这样的成员函数是否有正当理由? 最佳答案 这是整个库的标准设计原理:将容器与算法分开。如果按照自己的方式进行,则必须为每个容器Y实现每个功能X,如果您有M个功能和N个容器,则需要M*N个实现。通过使用迭代器并使算法在迭代器而不是容器上运行,您只需实现M个算法和N个迭代器接口(interface