[美] 史蒂芬·普拉达(Stephen Prata) 著,张海龙,袁国忠 译
第1章 预备知识
C++融合了过程性编程、OOP、泛型编程方法,强调的是实用性而不是意识形态。人生也一样,需要做具体的事情,需要在此基础上进行抽象思考并改进优化。
第2章 开始学习C++
-
字符串:用双引号引起,
<<
表示信息流动的路径, cout是一个对象,用于显示信息 -
endl 是一个特殊的控制字符,表示换行,与字符
\n
的不同之处是,会保证刷新字符串输出,不一定等到输入信息后输出 -
cout 比c语言中的printf智能
猜数字游戏(非该章节中素材):
#include <iostream>
#include <random>
/* <random>: since C++11
* <random>中定义了随机数生成引擎、随机数分布律、不确定随机数和预定义的最佳算法实践。
*
* 硬件生成随机数 random_device:
* 区别与其他生成算法的伪随机数,通过硬件生成真正的不确定随机数(如果硬件不支持,标准也允许使用伪随机生成方法实现此函数),返回一个unsigned int,通常作为前述引擎的seeds。
*
* 随机数分布律
* 可以预先定义随机数分布的概率分布,如正态分布uniform_int_distribution、伯努利分布binomial_distribution、泊松分布poisson_distribution等等。
*
* 预定义算法
* 定义了算法的最佳实践,避免了参数的选择,可以直接选择引擎,设定分布规律就好。
* 算法包括minstd_rand0、minstd_rand、mt19937、mt19937_64、ranlux24_base、ranlux48_base等。
*/
using namespace std;
int random_int(int int_Min, int int_Max);
int main() {
// 猜数字游戏
int the_number = random_int(0, 100);
int the_guess;
int tag = 0;
while (tag == 0) {
std::cout << "请输入一个0-100的整数:";
std::cout << std::endl;
std::cin >> the_guess;
if (the_guess > the_number) {
std::cout << "猜的数字较大!\n";
} else if (the_guess < the_number) {
std::cout << "猜的数字较小!\n";
} else {
std::cout << "bingo!\n";
tag = 1;
}
}
return 0;
}
int random_int(int int_Min, int int_Max) {
random_device seed;//硬件生成随机数种子
ranlux48 engine(seed());//利用种子生成随机数引擎
uniform_int_distribution<int> distribute(int_Min, int_Max);//设置随机数范围,并为均匀分布
return distribute(engine);//随机数
}
第3章 处理数据(整数和浮点数)
—-> page37
正文完