草庐IT

cp_struct

全部标签

c++ - 如何从 ctime 巧妙地初始化 struct tm

考虑这两种从格式化为字符串的日期获取纪元时间的方法:#includeintmain(){structtmtm_init={0};strptime("2012-10-2616:00","%Y-%m-%dT%H:%M",&tm_init);longepoch=mktime(&tm_init);structtmtm_rand;strptime("2012-10-2616:00","%Y-%m-%dT%H:%M",&tm_rand);epoch=mktime(&tm_rand);return0;}来源:http://ideone.com/3xMUm8.本质上的区别在于tm_init是用0初始化

Python:来自多个CSV的多个数据帧,将CP1252编码到UTF8

我有几个CSV文档的拉链。我将CSV提取到一个称为“登台”的文件夹中。这些文档在WindowsCP1252中编码。我想做的是在每个CSV文件中单独阅读作为单独的数据框架,然后在我删除所有空值后用UTF8编码的旧文件覆盖旧文件。或者,不用将CSV重写为UTF8,我可以严格地从生成的熊猫数据库中编码数据库。任何帮助都将不胜感激-我已经浏览了堆栈溢出论坛,主要主题似乎将多个CSV串成一个单个数据帧-我需要的是每个CSV的单独数据帧。另外,我必须删除N/A值,但是,在CSV中,它们具有随机数(即N/A(3)或N/A(1)等)这是我正在使用的代码:#Createthestagingdirectoryst

c++ - 嵌入式 C++ : Initialization of an array member of a struct within a class, 大小省略

您好,在此先感谢您对以下问题的任何帮助。编辑:我忘了补充一点,这是在无法访问STL功能的嵌入式系统上。我很抱歉遗漏了这条非常重要的信息。这是我第一次广泛使用C++进行编码,所以我忘了提及显而易见的事情。我回来补充这个事实,这个问题已经收到了一些回复。感谢大家这么快的回复!我正在尝试初始化结构的数组成员,该结构又是C++类的公共(public)成员。结构中省略了数组大小。这是一个例子://ClassA.hClassA{public:structStructA{StructBstructs[];};structStructB{//stuff};ClassA();//etc};//Class

c++ - 为什么某些局部类型声明在 C++ 中以 'struct' 为前缀

我经常看到这样的C++代码:voidfoo(){structsockaddr*from;//...}为什么需要struct说明符?它真的有作用吗?编译器已经可以知道sockaddr被声明为一个结构,所以我想知道为什么这是有用的或必要的。我过去曾尝试删除它,但没有注意到行为上的差异,但我不确定删除它是否安全。同样,这两者有什么区别?sizeof(structsockaddr)sizeof(sockaddr) 最佳答案 作为一种编码“风格”,这很可能是C的继承,其中关键字是必需的。在C++中,大多数情况下不需要这样做,尽管有时会使用它来

c++ - boost spirit qi on_error 通过引用传递 error_handler struct

我又遇到了灵气障碍问题。我在一个名为error_handler的仿函数结构中实现了错误处理。这通过引用传递给语法构造函数(参见Qi的MiniC示例)。然后我有on_errors在语法的构造函数中定义:typedefboost::phoenix::function>error_handler_function;on_error(gr_instruction,error_handler_function(err_handler)(L"Error:Expecting",_4,_3));//moreon_errors...但是,我的error_handler有私有(private)成员。好像每

c++ - 使用 not2 时将 struct vs class 作为 STL 仿函数

学习STL我写了一个简单的程序来测试仿函数和修饰符。我的问题是关于使用CLASS或STRUCT编写仿函数并尝试使用函数适配器对其进行操作的区别。据我在C++中的理解,CLASS和STRUCT之间的区别在于,在最后一种情况下,默认情况下成员是公共(public)的。这也是我在该站点的答案中多次阅读的内容。所以请解释为什么即使我在尝试使用not2修饰符时将所有成员(只是一个函数重载())声明为public,这段短代码也会编译失败。(我还没有尝试过其他修饰符,例如粘合剂)#include#include#include#includeusingnamespacestd;templatevoi

C++ 错误 : forward declaration of 'struct. ..?

循环包含问题我转发声明其中一个类在另一个类的标题中,试图解决它们的循环包含问题。这是我的两个文件:第一个文件(Parameter.h):#pragmaonce#include"Token.h"`classExpression;classParameter{public:Parameter(){string=newToken();identifier=newToken();expr=newExpression();}Token*string;Token*identifier;Expression*expr;};第二个文件(Expression.h):#pragmaonce#include

c++ - struct S { int align; 之间的区别}; (在 struct 关键字之后命名)和 struct { int align; } S; (结构定义后的名称)

#includestructHeader{unsignedlonglongintalignment;};intmain(void){structHeaderheader;//note:wecanloosethe'struct'inC++structHeader*pheader=&header;return0;}上面的程序在C和C++中都能完美编译。但是当我将Header结构更改为:struct{unsignedlonglongintalignment;}Header;它失败并在C中显示以下消息:错误:“Header”的存储大小未知在C++中:error:aggregate‘main()

c++ - 使用数组和某些方法来 memcpy struct 是否安全?

我想知道在包含数组和方法的结构上使用memcpy是否安全(只是一些getter和setter,因为数组的索引是不寻常的,我必须以某种方式映射它)。我知道它对POD是安全的,但我不确定我的结构是否会被视为POD? 最佳答案 您可以使用memcpy如果struct是TriviallyCopyable.您可以检查您的struct可以通过使用std::is_trivially_copyable轻松复制.此外,正如@JohanLundberg在评论中指出的那样,目标地址必须是0模std::alignment_of.您可以在http://en.

c++ - 为什么 offsetof(member) 等于 sizeof(struct)?

我有一个结构定义为:structsmth{chara;intb[];};当我在此结构上调用sizeof和offsetof时:cout输出是:44为什么stuct的大小是4,char占用1个字节,int数组的偏移量是4?为什么会有某种填充?另外,为什么int数组根本不占用任何空间? 最佳答案 Howcomewhenthesizeofthestuctis4andcharisusing1byte,theoffsetoftheintarrayis4?Whyistheresomekindofpadding?有填充是因为C标准允许;编译器经常对