Welcome 微信登录

首页 / 软件开发 / C++

C++:随机数生成器(random-number generator) 详解

C++:随机数生成器(random-number generator) 详解

C++:随机数生成器(random-number generator) 详解2014-11-16随机数, C语言的函数是rand(), C++则是随机数生成器(random-number generator) = 分布对象(distribution object) + 引擎(engine);使函数每次生成不同的随机数, 需要使用静态(static)局部变量, 这样分布对象和引擎就能保持(hold)状态(state), 每次都生成一个新的;生成随机的整数, ...
C++:随机生成器 伯努利分布(bernoulli distribution) 详解

C++:随机生成器 伯努利分布(bernoulli distribution) 详解

C++:随机生成器 伯努利分布(bernoulli distribution) 详解2014-11-16伯努利分布(bernoulli distribution), 是判断某件事情发生或者未发生的概率;给定参数p, 可以修改概率的值, 发生概率(true)是p,未发生概率(false)是1-p;随机库, 提供分布对象bernoulli_distribution, 输出bool值, 发生为true, 未发生为false;伯努利分布, 概率为0.5时, 可以等...
C++常见面试题

C++常见面试题

C++常见面试题2014-11-20题目: 关于C++中, 四种类型转换的关键字, 的详解, 也可以给出代码, 判断输出 或 判断哪些代码有误.答案及范例如下:四种关键字: const_cast, 常量性转除;dynamic_cast, 向下安全转型; reinterpret_cast, 重新解释转型; static_cast, 静态转型;1. const_cast, 常量性转除:主要对变量的常量性(const)进行操作, 移除变量的常量性, 即可以被非常...
C++中多重继承(multiple inheritance) 的名称歧义(name ambiguity)

C++中多重继承(multiple inheritance) 的名称歧义(name ambiguity)

C++中多重继承(multiple inheritance) 的名称歧义(name ambiguity)2014-11-20在多重继承中, 如果多个基类包含相同名字的成员函数, 则在派生类使用时, 容易发生歧义, 会导致出错;解决方法是: 在派生类中重写基类方法, 覆盖原方法, 再指定基类范围(scope), 确定使用那个基类的方法, 可以避免歧义;代码如下:/** cppprimer.cpp**Created on: 2014.1.10*Author: ...
C++中 随机访问(random access) 流(stream) 详解

C++中 随机访问(random access) 流(stream) 详解

C++中 随机访问(random access) 流(stream) 详解2014-11-20随机访问流, 使用mark(标记)标注流的位置, 包含两种方法tell和seek;tell, 是返回流mark的位置, 包含g和p两种版本.g表示get, 指输入流; p表示put, 指输出流;seek, 是跳至流mark所指的位置, 也包含g和p两种版本;seek可以指定位置, 也可以指定偏移(offset);代码如下:/** cppprimer.cpp**Cr...
C++中正则表达式 的 子表达式(subexpressions) 的数据验证

C++中正则表达式 的 子表达式(subexpressions) 的数据验证

C++中正则表达式 的 子表达式(subexpressions) 的数据验证2014-11-20子表达式(subexpressions)的 数据验证(data validation), 可以通过括号"()"分解正则表达式的子表达式;然后使用下标标示符[], 输出相应的子表达式, "0"代表全体, "1"代表第一个括号, 依次递加;通过对于问号项?是否匹配, 验证正则表达式的匹配式;代码:#incl...
C++中类模板的部分定制和定制成员

C++中类模板的部分定制和定制成员

C++中类模板的部分定制和定制成员2014-11-20类模板的部分定制, 是指使用类模板的类型(T), 但是不同种类, 如左值, 右值等;类模板的部分定制, 和类模板定制相同, 都需要类名相同,参数相同;定制的形参(parameter)比原始模板(original template)更加匹配;类模板有部分定制, 但函数模板没有, 函数模板只能是重载;类模板的定制成员, 类模板可以单独定制成员类型, 使不同的实例化类, 使用定制的成员;代码(部分定制):/*...
C++中函数模板定制(function template specialization) 详解

C++中函数模板定制(function template specialization) 详解

C++中函数模板定制(function template specialization) 详解2014-11-20函数模板定制可以解决特定的模板参数, 需要特定的函数方法去实现;注意函数模板定制是实例化模板, 而不是模板的重载;有非模板函数(nontemplate function)存在时, 当匹配度相同时, 优先使用非模板函数;如比较(compare)函数, 比较字符串(char*)类型, 不能通过判断地址去比较, 应该使用strcmp()函数, 需要定...
Eclipse CDT使用GDB调试C++的问题:无源文件命名(No source file named)

Eclipse CDT使用GDB调试C++的问题:无源文件命名(No source file named)

Eclipse CDT使用GDB调试C++的问题:无源文件命名(No source file named)2014-11-20Eclipse CDT调试C++, 使用的Unix的调试器GDB;由于在Unix下, 文件的目录格式使用的是"/", 但是在Windows下, 文件的目录格式使用的是"", 在C/C++中是转义字符;所以导致GDB由Unix移植到Windows下, 使用的文件目录会发生转义错误, 从而找不到源...
C++中函数模板(function template) 的 推进(forward) 问题

C++中函数模板(function template) 的 推进(forward) 问题

C++中函数模板(function template) 的 推进(forward) 问题2014-11-20函数模板在调用函数的时候, 由于实参(argument)转换形参(parameter)的时候, 会发生改变, 导致无法保留原实参的信息, 即推进(forward)问题;主要包括: 引用和右值;引用, 即因为模板参数非引用, 导致复制操作, 无法提供引用类型;右值, 即因为模板参数只能转换为左值, 无法提供右值;解决方法:引用: 使用右值参数(T&am...
<< 151 152 153 154 155 156 157 158 159 160 >>