看了TCPL后,对C,C++书籍的一些想法
通过学习C/C++的经历,深刻体会到:学习编程应直接阅读经典,而非普通教材,这样才能避免走弯路,真正掌握知识。
通过学习C/C++的经历,深刻体会到:学习编程应直接阅读经典,而非普通教材,这样才能避免走弯路,真正掌握知识。
原以为一个以前在C中轻易实现的猜数字游戏即便我加了一些奇怪的规则,还应该是非常简单就能实现的,但是,我忽略了C/C++ 中大整数带来的复杂性,的确,当整数范围超过long所能表示的范围以后,简单的四则运算或逻辑比较都是需要很复杂的代码才能实现。我在问题(3)就开始要解决一个这样的问题,似乎已经违背了我当初设想的从易到难写C++程序的目标了,但是,因为我对C++的了解程度,自然也很难真的说(或者对不同的人也不一样的)从易到难。但是因为太多方案在头脑中,所以先把问题提出来吧,假如有人来看,各取所需吧,我的解答自然不可能一下子出来,目前,我的想法是,实现一个稍微实用一点的大整数类库,以我的水平,自然不能多么完善,但希望这个类库能伴随我以后解决自己为自己提出的各种刁钻问题,目标自然很明确,让大整数的使用像内置类型一样!哪怕是多么大的天文数字!呵呵,目标而已,目标而已。
本文分享了一个C++字符串逆序输出的方法。通过使用vector和反向迭代器,并结合noskipws读取输入,实现了简洁高效的解决方案。
要求符合矩阵的各种运算规则,有标准库的各种功能,因为矩阵主要进行数值计算,所以只需要满足int,long,float,double的储存即可。
24点游戏就是先抽出4张牌,然后通过加减乘除计算24的游戏,要求游戏可以实现计时,限定时间,计算机输出结果等多种功能。输出结果最好是通过上题中类似的扑克图形方式输出。
要求,输出一副扑克中抽出的4张牌,以<>表示方块,%表示梅花,&表示红心,^表示黑桃,按类似下面的方式输出:最好在同一排输出4张扑克。
*********************
* <>5 *
* *
* *
* *
*********************
因为在问题(3)中需要解决这个随机数产生的问题,我感觉还比较复杂,当然光是需要产生一个普通的整数还是比较简单,但是有的时候不仅仅是需要这样。现在实现以下几个要求,为这个类定义一些接口。目前只要求所有产生的都是整数。
1,RandCreater(int i) 在 0~i 范围内
2,RandCreater(int i,int j)在i~j范围内
3,RandCreater(LargeInt linta)在0~ivec范围内 LargeInt的意义见问题(4)
4,RandCreater(LargeInt linta, LargeInt lintb) 在linta~lintb范围内
5,产生的数有两种形式,(1)可以是内置类型的int,(2)也可以产生问题(4)定义的LargeInt。
暂定接口,觉得不适合可以更改。
因为在问题(3)中需要解决这个的问题,我感觉还比较复杂,单独拿出来作为一个问题也不为过。而且以后进一步研究一些东西也需要。
要求让这个容器有大部分内建类型拥有的功能,越多越好,并且符合它自己的定义。
起码的功能包括起码的逻辑运算>,<,==,移位,»,«,算数运算+,-,*,/,输入输出运算«,»,迭代器,
初始化方式:BigInt binta; 默认构造函数,binta为0;
BigInt binta(lintb), binta是bintb的一个副本
BigInt binta(int) ,binta通过把int表示成大整数支持的格式构建自己。
BigInt binta(int n,int i);linta包含n位值为i。
暂定接口,不适合可以更改
因为用了近2个月的时间好好的看完了C++ Primer,最近有点盲目,一方面自己感觉自己还有太多的不足,另一方面却不知道何去何从,是先开始Effective C++之旅,深入语言的细节,形成良好的编程风格和习惯,为将来编写健壮的程序打下良好的基础呢?还是先从数据结构与算法开始,利用他们来熟悉刚刚塞入肚子里面却没有来的及消化的那么多东西?要不就直接开始windows API的学习,可以开始编写一些有实际意义的东西呢?还不也可以看看C++ 沉思录,编程珠玑类的书来加深自己对 C++的理解?或者干脆就可以开始大范围接触一些源代码,来学习人家的编程思路呢?也可以先学学OOP,了解一下C++ 最重要的机制?要不学习下boost库的知识也可以为将来编程带来很多思维上的飞跃阿。该怎么去呢?我自己迷惑了,所以郁闷了,不过我准备多面出击吗?精力不够啊。那么就稍微多面一点吧,首先看看TC++PL,同时编编有意思的程序,同时看看C++沉思录,Effective C++什么的。当程序员很多人都说累,因为要一直学东西。不过我倒比较喜欢这种终身学习的状态,因为这样不会让我感到空虚。
一个C++程序示例,利用iostream读取不同进制的输入,再通过bitset将其转换为二进制并格式化输出。