- codeBlocks 中,sizeof() 函数统计错误,需要使用#pragma pack(push, 1)和#pragma pack(pop) 才能统计正确,__attribute__((packed));不正确
#if _MSC_VER
#pragma pack(push, 1)
#endif
template<typename T1, typename T2>
struct Pair{
T1 first;
T2 second;
/// \brief constructor, default
Pair(): first(0), second(0) {}
/// \brief constructor, copy
Pair(const Pair& _item): first(_item.first), second(_item.second) {}
/// \brief constructor, component
Pair(const T1& _first, const T2& _second) : first(_first), second(_second) {}
/// \brief min value
static Pair& min_value() {
static Pair min_val = Pair();
return min_val;
}
/// \brief max vlaue
static Pair& max_value() {
static Pair max_val = Pair(std::numeric_limits<T1>::max(), std::numeric_limits<T2>::max());
return max_val;
}
/// \brief output
friend std::ostream& operator << (std::ostream _os, const Pair& _item) {
return _os << "first: " << _item.first << " second: " << _item.second << std::endl;
}
}
#if _MSC_VER
;
#pragma pack(pop)
#else
__attribute__((packed));
#endif
- 程序莫名其妙的错误,cur_bkt = 168时,LMS字符前继会小于等于当前字符,不只是逻辑错误还是程序bug,计划可以将该类用在pq推导的过程中,测试程序是否正常运行。(原因为windows系统文件读写存在错误,linux系统正确)
- 用双端队列替换还是出错。
- SAIS( string & _s, offset_vector_type *& _sa_reverse); 此行老是报错,原因为:string 为不可知类型,在前面加上 std::string,程序正确
- 使用MyVector时,顺序读写和逆序读写过程,有next,next_remove,next_reverse,next_remove_reverse,如果顺序错,会导致莫名其妙的错误. 20180319和20180320两天时间来找推导SStar的错误
- 在使用自己定义的宏时:#define __FILE_INFO__ std::cout << "Error occurrences. File name:" << __FILE__ << " , Line number:" << __LINE__ << " , Function name: " << __FUNCTION__<< ".\n"; std::cin.get(); ,程序停留在控制台,无任何反应,删除后正常
- 32位整数和64位整数相乘容易出错。uint64 tp_size = ((tp_zero_number - buf_size * i) >= buf_size) ? buf_size : (tp_zero_number - buf_size * i); 如果buf_size * i 这两个数是32位,那么相乘会越界,造成计算文件偏移量出错。
- std::vector成倍增长导致出现std::bad_alloc错误。
typedef Pair<offset_type, offset_type> LMSSub_pair_type; // <pos, name>
typedef TupleAscCmp1<LMSSub_pair_type> pair_comparator_type2;
typedef MySorter<LMSSub_pair_type, pair_comparator_type2> sorter_type2;
sorter_type2 *lms_substr_sorter = new sorter_type2(MAX_MEM/2); // pq_s has been deleted
分享到:
相关推荐
这篇"常用编程错误记录"总结了多年的编程经验,旨在帮助程序员避免常见的陷阱并提供了解决方案。这里我们将详细讨论其中一个特定的问题,即在使用VC6.0进行STL编程时遇到的C4503警告。 C4503警告通常出现在Visual ...
C++编程错误分析总结
书中通过实际编程经验总结了99个常见的编程错误,并针对这些错误提出了相应的解决方法和优化建议。通过学习和避免这些常见错误,C++程序员可以提升代码质量,提高编程效率,减少调试时间,从而更快速地编写出高质量...
"VC编程经验总结"是一个珍贵的资源,它涵盖了开发者在实际工作中可能遇到的各种问题及其解决方案。这个压缩包包含了一份HTML文档"阅读器下载.htm",可能是一个在线阅读器或者相关工具的下载链接,用于更好地查看和...
### 对于ISP编程进入不了编程模式的总结 在进行ISP(In-System Programming,即在线编程)操作过程中,经常会遇到无法进入编程模式的情况,尤其是在使用像智峰软件zf-007系列这样的下载器时更为常见。本文将针对ISP...
3. 编程错误总结:在开发过程中,各种编程错误是难以避免的。作者在文档中可能会列举一些常见的编程错误案例,例如指针使用不当、内存泄漏、数组越界等,并提供相应的解决方案或规避策略。 4. 编程经验分享:经验是...
这篇“VC编程经验总结”涵盖了多个关键知识点,旨在帮助开发者解决实际问题。以下是对这些知识点的详细说明: 1. **MFC(Microsoft Foundation Classes)库的使用**:VC++中的MFC是一个基于C++的对象模型,它提供了...
UC编程技术总结 UC编程技术总结是一种编程技术的总结,这种技术涉及到静态库和共享库的生成、使用、连接等过程,同时也涉及到内存管理、虚拟内存管理技术等方面。 一、静态库和共享库 静态库和共享库是两种不同的...
编程经验总结是关于Proc编程的经验总结,涵盖了Linux系统下的Oracle数据库编程、环境设置、Pro*C编程、Oracle编程经验及维护点滴、PROC编程经验介绍、宿主变量的声明、宿主变量的作用范围、数据库的连接与断开、PROC...
程序员编程好习惯总结 程序员在编程过程中需要遵循一些良好的习惯,以提高代码质量、提高工作效率和降低错误率。本文总结了15条程序员编程的好习惯,涵盖了编程设计、代码编写、版本控制、代码优化、代码维护等方面...
这篇名为“编程经验总结”的文章,无疑是这位程序员将自己多年的心得体会提炼成的一份珍贵指南。下面,我们就来详细探讨一下这个主题中的关键知识点。 1. **代码规范**:良好的编程习惯始于代码规范。遵循一定的...
【VC++数据库编程总结】 在IT领域,尤其是软件开发中,数据库编程是不可或缺的一部分,尤其在使用VC++作为开发工具时。VC++可以与多种数据库系统进行交互,如SQL Server、Oracle等,通过不同的访问技术实现数据的...
C语言编程错误总结 本文总结了C语言编程中常见的错误,涵盖了数组、函数、循环、判断等多个方面。通过分析这些错误,可以帮助程序员更好地理解C语言的语法和编程规则,避免常见的错误,从而提高编程效率和代码质量...
本文档总结了常见的 socket 错误码及其处理方法。 1. EINTR:此错误码表示阻塞的操作被取消阻塞的调用打断。如果设置了发送接收超时,就会遇到这种错误。处理方法是继续进行操作,忽略该错误。 2. ETIMEOUT:此...
这份"VC编程经验总结"的压缩包文件提供了丰富的学习资料,尤其是对于初学者和有一定经验的开发者来说,都是一个宝贵的资源。 首先,VC++是微软开发的一款集成开发环境,主要用于C++语言的编程。它集成了编译器、...
C语言段错误总结 C语言中的段错误是指访问了不可访问的内存,这个内存区要么是不存在的,要么是受到系统保护的。段错误是一个非常麻烦的问题,因为它可能导致程序崩溃或出现不可预料的结果。 一、什么是段错误? ...
本篇文章总结了C语言编程中常见的问题和解决方法,涵盖了VC环境下的工具栏和字体颜色自定义、代码对齐、函数参数显示、括号匹配检测、文件资源获取、头文件自定义、运行环境颜色定义等问题,并详细分析了编译和链接...
标题:总结Java编程中的经验教训 ...理解和应用这些教训不仅有助于避免常见的编程错误,还能显著提升代码的质量和效率。对于任何希望在Java领域取得成功的开发者来说,持续学习和实践是必不可少的。