C++ Primer Plus (第6版)中文版

[美] 史蒂芬·普拉达(Stephen Prata) 著,张海龙,袁国忠 译

第1章 预备知识

C++融合了过程性编程、OOP、泛型编程方法,强调的是实用性而不是意识形态。人生也一样,需要做具体的事情,需要在此基础上进行抽象思考并改进优化。

<p>C++ Primer Plus (第6版)中文版</p>

第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

正文完
 
评论(没有评论)