随笔分类 - 编程语言
摘要:一、基础部分1.1 什么是可变长参数可变长参数:顾名思义,就是函数的参数长度(数量)是可变的。比如 C 语言的 printf 系列的(格式化输入输出等)函数,都是参数可变的。下面是 printf 函数的声明:int printf ( const char * format, ... );可变参数函数声明方式都是类似的。1.2 如何实现C语言可变参数通过三个宏(va_start、va_end、va_arg)和一个类型(va_list)实现的,void va_start ( va_list ap, paramN );参数:ap: 可变参数列表地址paramN: 确定的参数功能:初始化可变参数列表(
阅读全文
摘要:vector容器是类似与一个线性数组,索引效率高,插入,删除的效率很低,需要遍历数据列表,一般情况下vector的删除操作由一下函数完成:iterator erase(iterator position) //删除一个位置iterator erase(iterator first, iterator last) //删除迭代器起始位置到最终位置void resize(size_type new_size, const T& x) // 修改容器大小看看STL的源码文件中这几个函数中的操作: // 將迭代器 position ...
阅读全文
摘要:MAP赋值和插入,对于相同ID的处理方式不同,前者为替换 后者为插入失败#include #include #include using namespace std;int main(){ map mapStudent; pair::iterator, bool> Insert_Pair; mapStudent[1] = "student_one"; mapStudent[1] = "student_one2"; cout ::iterator iter; for(iter = mapStudent.begin(); iter != mapStud
阅读全文
摘要:最近根据项目组需求做了web工作流程系统,就是一个简单的web管理系统,取代原先使用的excel表格,在VS2008下面开发,数据库使用Mysql,使用Mysql-connecte 5.0与数据库连接,前台使用HTML+JS(jquery),后台使用C#,服务器采iiS2。看我的博客知道,我之前涉及到的都是图像处理、微处理器方面的内容,WEb系统里面的每个东西对我都是新的,只能馒头啃了,还好畅姐很强大。此篇文章为连续文章,主要记录开发中设计中的问题,毕竟是菜鸟,只给出这些问题的解决方法的连接吧:1语言(1)HTMLhttp://www.w3school.com.cn/html/index.as
阅读全文
摘要:内存对齐常量折叠堆栈解退(stack unwinding)模板特化模板偏特化模板实例化函数对象单一定义规则(One-Definition Rule,ODR)自引用对象切片(object slicing)/切割:当把一个派生类对象赋给一个基类对象时,会发生对象切割。(另外用基类对象强制转换派生类对象也会),多态的实现是通过指针和引用;而对象的转换只会造成对象切割,不能实现多态。所有权语义(owership semantics)破坏性复制语义(distructive copy semantics)菱形继承向下强制:基类到派生类的转换向上强制:派生类到基类的转换交叉强制:从一个基类向其兄弟类的强制(
阅读全文
摘要:按照默认规定,只有一个参数的构造函数也定义了一个隐式转换,将该构造函数对应数据类型的数据转换为该类对象,如下面所示:class String {String ( const char* p );//用C风格的字符串p作为初始化值//…}String s1 = “hello”;//OK 隐式转换,等价于String s1 = String(“hello”);但是有的时候可能会不需要这种隐式转换,如下:class String { String ( int n );//本意是预先分配n个字节给字符串String ( const char* p );//用C风格的字符串p作为初始化值//…}下面两种
阅读全文
摘要:仔细想想地位卑贱的类型转换功能(cast),其在程序设计中的地位就象goto语句一样令人鄙视。但是它还不是无法令人忍受,因为当在某些紧要的关头,类型转换还是必需的,这时它是一个必需品。不过C风格的类型转换并不代表所有的类型转换功能。一来它们过于粗鲁,能允许你在任何类型之间进行转换。不过如果要进行更精确的类型转换,这会是一个优点。在这些类型转换中存在着巨大的不同,例如把一个指向const对象的指针(pointer-to-const-object)转换成指向非const对象的指针(pointer-to-non-const-object)(即一个仅仅去除cosnt的类型转换),把一个指向基类的指针转
阅读全文
摘要:优先级运算符名称或含义使用形式结合方向说明1[]数组下标数组名[常量表达式]左到右()圆括号(表达式)/函数名(形参表).成员选择(对象)对象.成员名->成员选择(指针)对象指针->成员名2-负号运算符-表达式右到左单目运算符(类型)强制类型转换(数据类型)表达式++自增运算符++变量名/变量名++单目运算符--自减运算符--变量名/变量名--单目运算符*取值运算符*指针变量单目运算符&取地址运算符&变量名单目运算符!逻辑非运算符!表达式单目运算符~按位取反运算符~表达式单目运算符sizeof长度运算符sizeof(表达式)3/除表达式/表达式左到右双目运算符*乘表
阅读全文
摘要:1. 集合是一组对象的聚集,在程序设计中是一种重要的数据结构2. 实际上集合使用一个对象来代表一组对象,在集合中的对象成为元素。3. 集合类的元素类型是object,这意味着在集合中插入一个值是,他总是会进行装箱;4. 从集合中移除一个值时,则必须进行强制类型的转换,从而对它进行拆箱。5. 集合表示一组可以通过遍历每一个元素来访问的一组对象,特别是能通过foreach循环访问他们。6. 对象如果可以提供相关对象的引用,就是一个集合,成为枚举,它可以遍历集合中的数据项。IEnumerable接口实现了IEnumerable接口的集合表明该集合能够以提供一个enumerator(枚举器)的对象,支
阅读全文
摘要:struct 类型是一种值类型,通常用来封装小型相关变量组,例如,矩形的坐标或库存商品的特征。下面的示例显示了一个简单的结构声明。public struct PostalAddress{// Fields, properties, methods and events go here...} 结构与类共享几乎所有相同的语法,但结构比类受到的限制更多: 尽管结构的静态字段可以初始化,结构实例字段声明还是不能使用初始值设定项。结构不能声明默认构造函数(没有参数的构造函数)或析构函数。结构的副本由编译器自动创建和销毁,因此不需要使用默认构造函数和析构函数。实际上,编译器通过为所有字段赋予默认值(参见
阅读全文
摘要:1. 主要内容 类型的基本概念 值类型深入 引用类型深入 值类型与引用类型的比较及应用2. 基本概念C#中,变量是值还是引用仅取决于其数据类型。C#的基本数据类型都以平台无关的方式来定义,C#的预定义类型并没有内置于语言中,而是内置于.NET Framework中。.NET使用通用类型系统(CTS)定义了可以在中间语言(IL)中使用的预定义数据类型,所有面向.NET的语言都最终被编译为 IL,即编译为基于CTS类型的代码,通用类型的系统的功能:建立一个支持跨语言集成、类型安全和高性能代码执行的框架。提供一个支持完整实现多种编程语言的面向对象的模型。定义各语言必须遵守的规则,有助于确保用不同语言
阅读全文

浙公网安备 33010602011771号