草庐IT

FOR_RUNTIME

全部标签

c++ - OpenMP,for 循环内部部分

我想运行以下代码(如下)。我想产生两个独立的线程,每个线程都运行一个并行的for循环。不幸的是,我得到一个错误。显然,并行for不能在section内产生。怎么解决?#include#include"stdio.h"intmain(){omp_set_num_threads(10);#pragmaompparallel#pragmaompsections{#pragmaompsection#pragmaompforfor(inti=0;i错误:main.cpp:Infunction‘intmain()’:main.cpp:14:9:warning:work-sharingregionm

c++ - 从 lambda 访问 for_each 迭代器

是否可以访问std::for_each迭代器,这样我就可以使用lambda从std::list中删除当前元素(如下所示)typedefstd::shared_ptrEventPtr;std::listEventQueue;EventTypeevt;...std::for_each(EventQueue.begin(),EventQueue.end(),[&](EventPtrpEvent){if(pEvent->EventType()==evt.EventType())EventQueue.erase(???Iterator???);});我读过关于使用[](typenameT::va

C++0x random_device 'std::runtime_error'

我是C++初学者,我对C++0x随机数生成器有疑问。我想使用Mersennetwister引擎来生成随机int64_t数字,并且我使用我之前找到的一些信息编写了一个函数:#include#includeint64_tMyRandomClass::generateInt64_t(int64_tminValue,int64_tmaxValue){std::random_devicerd;std::default_random_enginee(rd());unsignedchararr[8];for(unsignedinti=0;i(arr[0])|static_cast(arr[1])(a

c++ - 升压程序选项 : Description too wide for terminal

我正在使用BoostProgramOptions来解析命令行参数(我不想错过它,因为它工作得很好)。但是,我有一个问题:Boost程序选项提供了为每个选项分配描述的可能性。Boost然后提供了可能性cout很好地显示帮助解释选项。但是,这些错误消息似乎被调整为80的终端宽度(我的结论是,对于80的宽度,换行符设置得很好)。如果我当前的终端有另一个宽度(特别是少于80列的终端),由于终端自动换行,显示的帮助看起来非常不自然。那么:有没有可能是Boost自动调整选项描述为当前终端宽度? 最佳答案 options_description接

c-使用for for for for for for for for for for for for for for for for to的值与输入的值不同

我有这个简单的程序在课堂上工作,它初始化了一个3x52D整数数组,其值由用户输入每个单元格。然后,该程序调用一个函数,该函数通过数组运行,并带有for循环显示每个值,然后调用一个函数,该函数再次使用forloop将每个值倍加倍,并调用先前的显示功能再次显示数组。所有这些似乎都在起作用,但是在初始化2Darray的值时,我一直在某些区域获得奇数输出。例如:输入5行“1、2、3”,然后调用显示功能将其作为输出产生:1,1,2,1,2,3,1,2,3,1,2,5,1,2,3此外,加倍函数还会产生进一步的奇怪结果,但仅在输出与用户输入的区域不同。我刚刚发布的显示为:2,4,82,4,62,4,62,4

c++ - 带有 unsigned char 的 for 循环给出了意想不到的行为

我正在练习面试问题,但很难回答这个基本问题:Howmanytimeswillthisloopexecute?unsignedcharhalf_limit=150;for(unsignedchari=0;i我的想法是,由于unsignedint仅达到255,它将永远执行,因为当我在unsignedchar为255时增加它时它会恢复为0?然而,这种想法是错误的,更奇怪的是,这是cout给我的输出:!"#$%&'()*+,-./0123456789:;?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~�������

c++ - 基于范围的 for 和其他增量

假设我们需要迭代一个容器。传统的for循环看起来像这样:for(autoit=container.begin(),end=container.end();it!=end;++it){doStuff(*it);}虽然基于范围的for看起来像这样:for(auto&element:container){doStuff(element);}现在,在开发的某个阶段,我们意识到出于某种原因,我们需要在这些循环迭代中增加一些其他东西。需要增加的可能是各种各样的东西。例如,如果我们将相关数据存储在其他相同大小的容器中,我们可能也需要在迭代过程中将迭代器递增到这些容器(尽管我希望标准库的future版

c# - while(true)/while(1) 与 for(;;)

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:for(;;)orwhile(true)-WhichistheCorrectC#InfiniteLoop?Whychoosingfor(;;){}overwhile(1)?while(true)、while(1)和for(;;)之间有什么区别?它们在C#和C/C++等语言中都是无限循环。但是一个比另一个更好吗?有什么想法吗?

c++ - Ranged for loop const 引用似乎没有什么区别

如果我在C++11中有一个基于范围的for循环,for(autoconst&ticket:ticketStrip->tickets()){ticket->ClearCalled();}为什么我可以在循环内调用票证上的非const方法,例如未标记为const的ClearCalled()?voidTicket::ClearCalled(){...}ClearCalled确实修改了票证内部结构,因此不应将其标记为常量。我知道我应该使用auto&ticket不过我试过了autoconst&ticket并且编译器接受了它。票的类型是boost::shared_ptr并放入一些新代码:ticket

c++ - 在 for 循环中声明几个新的计数器

考虑以下代码:vectorv;for(vector::iteratorvi=n.begin(),inti=0;vi!=n.end();++vi,++i){}是否有不允许这样做的原因?我希望能够定义2个新计数器,vi和索引i。 最佳答案 这是C++Primer一书中的解释:Asinanyotherdeclaration,init-statementcandefineseveralobjects.However,init-statementmaybeonlyasingledeclarationstatement.Therefore,al