草庐IT

preparing-for-handsets

全部标签

c++ - g++ 表示 : warning: statement has no effect for shift bits operators

我正在实现alkhwarizmi算法。没错,但我的g++编译器不喜欢移位运算符:>>和当我编译它时,我得到这个输出:>g++-Wall-std=c++0x-o"Al-khwarizmialgorithm.o""Al-khwarizmialgorithm.cpp"(indirectory:/home/akronix/workspace/Algorithms)>Al-khwarizmialgorithm.cpp:Infunction‘intalkhwarizmi(int,int)’:Al-khwarizmialgorithm.cpp:31:9:warning:statementhasnoe

C++ for循环变量的生命周期很奇怪

for(inti=0;i代码的输出是123456789。我想知道为什么在执行变量声明时for循环中的变量n没有被初始化。 最佳答案 您永远不会将n初始化为特定值。当您调用intn时,C++默认不会执行此操作。相反,它只是保留一个整数大小的内存块。因此,当您调用n++时,程序只是获取该内存中恰好存在的任何值并递增它。由于您是快速连续地执行此操作而不是在其间创建新变量,因此它恰好一遍又一遍地获取相同的内存。正如@NicolasBuquet指出的那样,编译器优化也可能与选择相同内存块的一致性有关。如果您要为n分配一个值(即intn=1;)

c++ - 如何在 Visual Studio 2015 for C 中禁用警告?

这个问题在这里已经有了答案:Removesecurewarnings(_CRT_SECURE_NO_WARNINGS)fromprojectsbydefaultinVisualStudio(7个答案)关闭7年前。我是C语言编程的新手,我不习惯在VisualStudio2015中工作,我的教授向我发送了作业的源代码,但我收到以下错误:ErrorC4996'fopen':Thisfunctionorvariablemaybeunsafe.Considerusingfopen_sinstead.Todisabledeprecation,use_CRT_SECURE_NO_WARNINGS.我

c++ - 基本类型和复杂类型的通用 for 循环

假设我有这两个std::vector:std::vectorv_int(1000);std::vectorv_T(1000);//WhereTiscopy-costytype如果我需要(单独)循环遍历它们而不需要编辑我可能使用的项目:for(constautoitem:v_int){//...}for(constauto&item:v_T){//Note&//...}使用constautoitem:v_T进行迭代太糟糕了,因为每次迭代都会执行一个拷贝。然而,使用constauto&item:v_int不是最佳的,但也不是那么糟糕。因此,如果我需要同时处理它们的代码,我会使用consta

c++ - for 语句中的 constexpr

c++17提供ifconstexpr,其中:thevalueofconditionmustbeacontextuallyconvertedconstantexpressionoftypebool.Ifthevalueistrue,thenstatement-falseisdiscarded(ifpresent),otherwise,statement-trueisdiscarded有没有办法在for语句中也使用它?要在编译时展开循环?我希望能够做这样的事情:templatevoidfoo(){forconstexpr(autoi=0;i 最佳答案

c++ - std::this_thread::sleep_for(2s) 中的 s 是什么?

我找到了std::this_thread::sleep_for可以处理时间单位s。std::this_thread::sleep_for(2s);但是我不知道2s中的s是什么。 最佳答案 Whatissinstd::this_thread::sleep_for(2s)?s是一个用户定义的文字使得2schrono::second类型的文字值.内置文字您可能熟悉integerliterals和floatingliterals;这些是内置后缀:+--------+---------+---------------+|Suffix|Exam

c++ - 为什么 for-loop 不是编译时表达式并且扩展的 constexpr 允许在 constexpr 函数中进行循环

我是这样写代码的#includeusingnamespacestd;constexprintgetsum(intto){ints=0;for(inti=0;i我知道它之所以有效是因为extendedconstexpr.然而在这个问题why-isnt-a-for-loop-a-compile-time-expression,作者给出了他的代码如下:#include#include#includeconstexprautomultiple_return_values(){returnstd::make_tuple(3,3.14,"pi");}templateconstexprvoidfoo

c++ - std::getline 在 for 循环中不起作用

我正在尝试将用户的输入收集到一个字符串变量中,该变量在指定的时间内接受空格。因为通常的cin>>str不接受空格,所以我会使用中的std::getline这是我的代码:#include#include#include#includeusingnamespacestd;intmain(){intn;cin>>n;for(inti=0;i有什么想法吗? 最佳答案 如果输出存储在local中的内容(顺便说一下,这是一个糟糕的变量名:P),你就会明白为什么会失败:#include#include#include#includeusingna

c++ - 在 C++03 中将成员函数传递给 for_each(没有提升,没有 c++11)

下面的“解决方案”可以编译,但不是我想要的。我想将put成员函数传递给for_each而不是*this。使用boost不是一个选项。这可以在C++03中解决吗?#include#include#includeusingnamespacestd;classWheel{};classCar{public:voidprocess(constvector&wheel){for_each(wheel.begin(),wheel.end(),*this);}voidoperator()(constWheel&w){put(w);}private:voidput(constWheel&w){}};i

c++ - 基于范围的循环与 for-each 循环有何不同?

最新的C++11规范定义了一种新型的for循环,称为“基于范围的for循环”。它的外观和机制似乎与其他语言中可用的for-each循环几乎相同。如果有的话,两者之间有什么区别?如果没有差异,为什么要使用新名称?编辑:澄清一下,我不是在寻找c++的“基于范围的”与其他语言的foreach或std::for_each之间的实现差异。相反,我想知道他们决定将这个新的C++“功能”(或语法、成语或任何你想调用它的东西)称为“基于范围的for循环”而不是“每个循环”,几乎其他人似乎都这样称呼这些东西。 最佳答案 语法:for(range_de