草庐IT

initial-time

全部标签

c++ - "All memory allocated on the stack is known at compile time"是什么意思?

阅读thisgreattutorial关于堆栈与堆,我对这句话有疑问:在堆栈上分配的所有内存在编译时都是已知的。我的意思是,如果我处于取决于用户输入的for循环中(i从0到X),并且在for我在堆栈上分配内存(例如创建一些类的新实例并放入类容器中),它不知道编译程序时堆栈将如何增长(它错过了用户的输入)。我是不是误会了什么? 最佳答案 对读者来说,所做的陈述稍微简化了一点。你是对的,堆栈本质上是动态的,实际分配的数量可能因动态输入而异。这是一个带有递归函数的简单示例:voidf(intn){intx=n*10;if(x==0)ret

【论文阅读笔记】TimesURL: Self-supervised Contrastive Learning for Universal Time Series

TimesURL:Self-supervisedContrastiveLearningforUniversalTimeSeriesRepresentationLearning摘要 学习适用于多种下游任务的通用时间序列表示,并指出这在实际应用中具有挑战性但也是有价值的。最近,研究人员尝试借鉴自监督对比学习(SSCL)在计算机视觉(CV)和自然语言处理(NLP)中的成功经验,以解决时间序列表示的问题。然而,由于时间序列具有特殊的时间特性,仅仅依赖于来自其他领域的经验指导可能对时间序列是无效的,并且难以适应多个下游任务。 在1和2中,研究发现不适当的正负样本构造可能引入不恰当的归纳偏差,既不能保持时

c++ - 术语的含义 - Resource Acquisition Is Initialization

我知道RAII的作用。当/如果代码抛出异常时,这都是为了防止内存泄漏等。现在,我想了解那个智能术语的含义。http://en.wikipedia.org/wiki/AcquisitionAcquisition意味着获得某物。那么,当我们说资源获取就是初始化时,这是什么意思?我只是在这里谈论这个术语的含义,而不是一般的概念。 最佳答案 之前有人说过(可能是ScottMeyers说的,我记不清了),RAII应该被称为“Destructionisresourcerelease”,或者类似的词。“资源获取即初始化”字面上的意思是,当一个对象

c++ - "crosses initialization of variable"仅当初始化结合声明时

我读过thisquestion关于“跳转到案例标签”错误,但我还有一些疑问。我在Ubuntu12.04上使用g++4.7。这段代码报错:intmain(){intfoo=1;switch(foo){case1:inti=0;i++;break;case2:i++;break;}}错误是jump-to-case-label.cpp:Infunction‘intmain()’:jump-to-case-label.cpp:8:8:error:jumptocaselabel[-fpermissive]jump-to-case-label.cpp:5:9:error:crossesinitia

c++ - 嵌套的 std::initializer_lists 的数据元素是否保证是连续的?

可以通过嵌套大括号括起来的列表来创建多维初始化器,如{{1,2,3},{4,5,6}}中所示。接受它的函数可以使用嵌套的std::initializer_list编写。是否保证数据元素是连续的?这是一个例子:voidf(std::initializer_list>a){for(autoconst&p:a)for(autoconst&q:p)std::cout上面的代码在我的机器上输出了连续的地址。0x400c600x400c640x400c680x400c6c0x400c700x400c74有保证吗?更新答案一定是否定的。voidg(std::initializer_lista,std

c++ - 将 long int 转换为 const time_t

我有变量tmit:longtmit;。我在这段代码中出错:printf("Time:%s",ctime(&tmit));错误说:无法将参数“1”的“longint*”转换为“consttime_t*{akaconstlonglongint*}”到“char*ctime(consttime_t*)”我的问题是,如果我想查看日期,如何在不丢失任何有关时间的信息的情况下将long转换为time_t或如何更改此代码。我正在研究这个answer,但我得到了错误。 最佳答案 一般情况下,您不能这样做,因为std::time_t之间不需要有任何合

c++ - 从编译时已知的日历日期创建 `std::chrono::time_point`

This答案显示了如何将字符串解析为std::chrono::time_point,如下所示:std::tmtm={};std::stringstreamss("Jan9201412:35:34");ss>>std::get_time(&tm,"%b%d%Y%H:%M:%S");autotp=std::chrono::system_clock::from_time_t(std::mktime(&tm));如果我想从一个(公历)日历日期创建一个std::chrono::time_point,其年、月和日在编译时已知,是否有任何比上面建议的从字符串解析它更简单的方法?

c++ - Python ctypes : initializing c_char_p()

我写了一个简单的C++程序来说明我的问题:extern"C"{inttest(int,char*);}inttest(inti,char*var){if(i==1){strcpy(var,"hi");}return1;}我把它编译成一个so.从python我调用:fromctypesimport*libso=CDLL("Debug/libctypesTest.so")func=libso.testfunc.res_type=c_intforiinxrange(5):charP=c_char_p('bye')func(i,charP)printcharP.value当我运行它时,我的输出

c++ - initializer_list 和参数相关的查找

我正在尝试将std::initializer_list用作使用参数相关查找(ADL)的函数中的参数。但我没有让它工作,我不明白为什么。以下是一个最小的失败示例:#include#includeclassFoo{public:inlinefriendvoidbar(std::initializer_listv){std::coutv){std::cout如上所示,等效的全局函数工作得很好。为什么以上不起作用?我在OSX10.10上使用clang。 最佳答案 我认为问题在于子表达式1{a,a}没有真正的类型,因此它没有关联的类型或命名空

c++ - 有没有办法在编译时检查 std::initializer_list 参数的数量?

我正在尝试创建一个可以接受多个给定类型参数的函数,但是参数的类型和数量都应该通过模板指定。我发现在这种情况下使用C++11的initializer_list可能是一个很好的技术,但是是否可以在编译时检查它的大小?有没有其他技术可以解决这个问题?#include//HereIwanttodefinetypeandnumberofcomponentsforeachpointtemplateclassGeometry{public:voidaddPoint(std::initializer_listcoords){assert(coords.size()==DIM);//Workinggoo