草庐IT

Block_size

全部标签

c++ - 在控制结构 block 中定义变量

如果我在控制结构的block内定义一个变量,它是否仅存在于该控制结构的block的执行中,而不存在于封闭函数的整个执行过程中?另外,我如何监控程序的确切内存使用情况及其变化(即:通过创建和销毁变量来改变内存使用情况)?稍后补充:在下面的代码中,我知道v范围是ifblock,但我想知道v是在内存中在ifblock的开始/结束处还是在函数func的开始/结束处创建/销毁?voidfunc(){if(true){intv;//automaticstorageclassv=1;}} 最佳答案 IfIdefineavariableinside

c++ - Visual Studio C++ "Automatically format completed block on }"

VisualStudio具有适用于C#的此设置,但我找不到适用于C++的设置。“在}上自动格式化完成的block”我在处理C#内容时经常使用此功能,现在我又回到了C++(我更喜欢),我想念这个功能。我该如何设置?我想此时我必须使用第3方插件或其他东西,但我在所有搜索中找不到任何相关插件。此功能的作用:如果我有一段代码并在其前键入“{”,然后在其后键入“}”,它会自动将其跳格以匹配使代码更易于阅读的跳格规则。例如:从一些代码开始:{inti=1;intj=2;j+=i;}在某处添加一个开始括号:{inti=1;intj=2;{j+=i;}添加一个结束括号,包含的代码会自动为我添加标签:{

c++ - Valgrind 在空析构函数上给出 "Invalid write of size 8"

我有一个声明:std::map*myMap;进入某个类A。这个映射是在A的构造函数中创建的:myMap=newstd::map;MyClass类基本上是一个结构,用于存储一些带有一些getter/setter的数据。MyClass中没有任何指针或新实例,只有一对枚举值、一个无符号整数和一个bool值。所以MyClass析构函数是空的。另一方面,在A的析构函数中我正在删除映射:A::~A(){if(myMap!=NULL){deletemyMap;myMap=NULL;}}这里Valgrind在删除行上告诉我“地址0x4c389b0是一个大小为48的block内的16个字节free'd[

c++ - size_t 和 __w64、time_t 和 __int64 是如何工作的?

我不是C或C++的老手。我不知道time_t是如何定义和设计的。几个帖子,例如:Whatisultimatelyatime_ttypedefto?Whatissize_tinC?Differencebetweensize_tandstd::size_t但是这些帖子只说明什么是time_t或size_t。它没有明确说明time_t或size_t是如何以及在何处定义和声明的。我正在使用WIN8VS2012ExpressC++。我搜索了库,发现size_t是在crtdefs.h中定义的,而不是cstddef。为什么需要size_t、time_t这样的类型?我们可以让sizeof只返回unsi

c++ - 如何使用缓存技术提高性能

你好,我正在尝试运行一个程序,该程序使用蛮力和缓存技术(如此处的pdf)找到最接近的对:CachingPerformanceStanford我的原始代码是:floatcompare_points_BF(intN,point*P){inti,j;floatdistance=0,min_dist=FLT_MAX;point*p1,*p2;unsignedlonglongcalc=0;for(i=0;i这个程序大约给出了这些运行时间:N81921638432768655361310722621445242881048576seconds0,0700,2801,1305,54018,08072

c++ - 如何使 rValue 引用在 RR 获取其值的 try block 之外可用?

假设我们不想重新设计函数a_func_that_may_throw。try{T&&rr=a_func_that_may_throw();}catch(conststd::exception&e){/*Dealwiththeexceptionhere.*/}//Question:Howtoadaptthecodeabovesoastohave`rr`availablehere?抱歉没有问清楚我的问题。添加以下内容(希望)使问题更清楚。我们可以对指针这样做:T*ptr=nullptr;try{ptr=a_source_that_may_throw();}catch(conststd::ex

c++ - OpenCv图像 block ,大小错误?

我有一个函数,可以使用C++和OpenCv将图像分成block以进行进一步处理。这是我的代码:voidimageSplit(Matimage){intblockNumber=8;//gettheimagedataintheight=image.rows;intwidth=image.cols;//sethowmanyblocksandcreatevectortostorecv::SizesmallSize(height/blockNumber,width/blockNumber);std::vectorsmallImages;for(inty=0;y它适用于更大的区域(512x512有

c++ - 线程构建 block : Deadlocks because all threads used up

在英特尔线程构建block框架中,如何确保所有线程不忙于等待其他线程完成。例如考虑以下代码,#include#include#include#include#includestd::futurerun_something(std::functionfunc,boolb){autotask=std::make_shared>(std::bind(func,b));std::futureres=task->get_future();tbb::task_groupg;g.run([task](){(*task)();});returnres;};intmain(){tbb::parallel

c++ - block 范围静态的析构函数可以被调用几次?

我刚刚读了this有关当前boost::mutex实现背后实际原因的文章,并注意到以下短语:Block-scopestaticshavetheadditionalproblemofapotentialraceconditionon"thefirsttimethrough",whichcanleadtothedestructorbeingrunmultipletimesonpopularcompilers,whichisundefinedbehaviour—compilersoftenusetheequivalentofacalltoatexitinordertoensurethatde

c++ - C4244 : '+=' : conversion from 'std::streamsize' to 'size_t' , 可能丢失数据

我已将我的VC++项目从VS2008迁移到VS2013并收到一些警告,例如:C4244:'+=':conversionfrom'std::streamsize'to'size_t',possiblelossofdata.如何解决这些类型的警告? 最佳答案 在MSVC2013中std::streamsize是:typedef_Longlongstreamsize;typedef_LONGLONG_Longlong;#define_LONGLONG__int64size_t是:typedefunsigned__int64size_t;因