草庐IT

BIT_SIZE

全部标签

ruby-on-rails - Ruby on Rails - Encoding::UndefinedConversionError: "\xC3"从 ASCII-8BIT 到 UTF-8

我有一个通过FTP从大型机获取平面文件的进程。这通常适用于某些文件。在其他情况下,我得到:Encoding::UndefinedConversionError:"\xC3"fromASCII-8BITtoUTF-8那是使用Net::FTP的gettextfile方法。这是我的代码:deffind_file(position,value)#=>Value=CLKDRP03.txt,ForgetthevariablePositionftp=Net::FTP.new('IP')#=>status200ftp.login('user','pass')#=>Truefiles=ftp.list(

c++ - size_t 类型变量的跨平台格式字符串?

这个问题在这里已经有了答案:What'sthecorrectwaytouseprintftoprintasize_t?(3个回答)关闭2年前.在跨平台c/c++项目(Win32、Linux、OSX)上,我需要使用*printf函数来打印一些size_t类型的变量。在某些环境中size_t是8个字节,而在其他环境中是4个。在glibc上我有%zd,在Win32上我可以使用%Id.有没有优雅的方法来处理这个问题? 最佳答案 PRIuPTR宏(来自)定义了uintptr_t的十进制格式,它应该总是足够大,以便您可以转换size_t不截断,

c++ - size_t 类型变量的跨平台格式字符串?

这个问题在这里已经有了答案:What'sthecorrectwaytouseprintftoprintasize_t?(3个回答)关闭2年前.在跨平台c/c++项目(Win32、Linux、OSX)上,我需要使用*printf函数来打印一些size_t类型的变量。在某些环境中size_t是8个字节,而在其他环境中是4个。在glibc上我有%zd,在Win32上我可以使用%Id.有没有优雅的方法来处理这个问题? 最佳答案 PRIuPTR宏(来自)定义了uintptr_t的十进制格式,它应该总是足够大,以便您可以转换size_t不截断,

c++ - vector 中的 size() 与 empty() - 为什么首选 empty()?

在调试某些东西时,我看到了STLvector::empty()实现:boolempty()const{return(size()==0);}我相信,每当我们探测vector的空性时,总是建议使用空而不是size()。但是看到这个实现,我想知道,这样做有什么好处?相反,在调用empty时会产生函数调用开销,因为它在内部调用size()==0。我认为empty()在列表的情况下可能会有所帮助,因为size()不能保证列表中的恒定时间。为了验证我的假设,我检查了列表实现,令人惊讶的是,在列表中也发现了相同的实现,return(size()==0);我现在有点困惑。如果empty内部使用siz

c++ - vector 中的 size() 与 empty() - 为什么首选 empty()?

在调试某些东西时,我看到了STLvector::empty()实现:boolempty()const{return(size()==0);}我相信,每当我们探测vector的空性时,总是建议使用空而不是size()。但是看到这个实现,我想知道,这样做有什么好处?相反,在调用empty时会产生函数调用开销,因为它在内部调用size()==0。我认为empty()在列表的情况下可能会有所帮助,因为size()不能保证列表中的恒定时间。为了验证我的假设,我检查了列表实现,令人惊讶的是,在列表中也发现了相同的实现,return(size()==0);我现在有点困惑。如果empty内部使用siz

c++ - C++ 循环中 vector::size() 的性能问题

在以下代码中:std::vectorvar;for(inti=0;isize()成员函数是每次循环迭代调用,还是只调用一次? 最佳答案 理论上,每次都会调用,因为一个for循环:for(initialization;condition;increment)body;扩展为类似{initialization;while(condition){body;increment;}}(注意花括号,因为初始化已经在内部范围内)在实践中,如果编译器了解您的条件在循环的所有持续时间内是不变的并且它没有副作用,它可以聪明地把它搬出去。这通常使用str

c++ - C++ 循环中 vector::size() 的性能问题

在以下代码中:std::vectorvar;for(inti=0;isize()成员函数是每次循环迭代调用,还是只调用一次? 最佳答案 理论上,每次都会调用,因为一个for循环:for(initialization;condition;increment)body;扩展为类似{initialization;while(condition){body;increment;}}(注意花括号,因为初始化已经在内部范围内)在实践中,如果编译器了解您的条件在循环的所有持续时间内是不变的并且它没有副作用,它可以聪明地把它搬出去。这通常使用str

c++ - 64 位平台上的效率 : pointer vs 32-bit array indexing

在他的一个主题演讲中,AndreiAlexandrescu建议,在64位平台上,使用32位数组索引比使用原始指针更快:第16页:http://www.slideshare.net/andreialexandrescu1/three-optimization-tips-for-c-15708507在他的Facebook帐户上,他更准确地说:“更喜欢数组索引而不是指针(这个似乎每十年反转一次)。”。我已经尝试了很多方法来寻找差异,但我还没有设法构建任何显示这种差异的程序。了解Andrei,我不会对差异不超过几个百分点感到惊讶,但如果有人找到这样的例子,我会很高兴。这是我做的一个测试。我选择

c++ - 64 位平台上的效率 : pointer vs 32-bit array indexing

在他的一个主题演讲中,AndreiAlexandrescu建议,在64位平台上,使用32位数组索引比使用原始指针更快:第16页:http://www.slideshare.net/andreialexandrescu1/three-optimization-tips-for-c-15708507在他的Facebook帐户上,他更准确地说:“更喜欢数组索引而不是指针(这个似乎每十年反转一次)。”。我已经尝试了很多方法来寻找差异,但我还没有设法构建任何显示这种差异的程序。了解Andrei,我不会对差异不超过几个百分点感到惊讶,但如果有人找到这样的例子,我会很高兴。这是我做的一个测试。我选择

c++ - 如何编写像 "size_t s = 16 MByte"这样的文字常量?

今天在我们的代码库中找到了以下行,并喜欢它编写内存大小的优雅。想知道这是如何编译的。size_tpoolSize=16MByte;给出了一个解决方案作为我自己的答案。还有其他解决方案吗? 最佳答案 在现代C++中,您应该definealiteralnotation,例如autooperator""_MB(unsignedlonglongconstx)->long{return1024L*1024L*x;}然后写longconstpoolSize=16_MB;不要使用宏,它们是Evil™。在很多方面。免责声明:编译器未触及代码。