如何正确的通过 C++ Primer 学习 C++
C++ primer 第一次可以跳着看。关键是要尽快用起来,在使用中熟练,而不是在细节中迷失。
以C++ Primer第五版为例,第一遍读的时候:
Part1也就是前八章,除了6.6,6.7节,都要通读。尤其是第三章初步介绍了vector和string,简直就是新手福音,搞定这两个容器就能写一些简单的程序。
Part2基本就是数据结构和算法,如果有基础读起来很轻松。
9,11两章介绍的容器,以及12.1节的智能指针要通读。多用智能指针和容器,远离segment fault. 第10章里的泛型算法可以慢慢读,读完以后可以写出高逼格的函数式风格C++。12.2节讲了怎么用new和delete分配空间,题主作为新手,知道这种写法就行,写程序时尽量用容器代替原始数组,尤其是代码里最好不要有delete。
Part3是块硬骨头,标题就是Tools for Class Authors. 作为一个"class user",有些部分第一次是可以略过的。
13章很重要,要细读。初始化,复制,赋值,右值引用是C++里很微妙很重要的部分,别的语言对于这些概念很少有区分得这么细的。这一章不但要精读,还要完全掌握。
14章的操作符重载第一次可以观其大略;14.9节第一次可以跳过。
15章讲OOP,重要性不言而喻。如果之前一点概念都没有,学起来会觉得比较抽象。网上关于OOP有很多通俗有趣的文章,可以一起看看。
16章讲泛型编程,第一次读16.1节,掌握最基本的函数模板和类模板就行了。
Part4就更高档了,很多内容第一次就算啃下来,长久不用又忘了。第一次读推荐把18.2节读懂,命名空间简单易用效果好。别的内容可以观其大略,用时再看。17.1节的tuple是个有趣的东东,可以读一读。17.3节的正则表达式和17.4节的随机数也许有用,也可以读一读。如果需要读写文件,要读一下17.5.2节的raw I/O和17.5.3节的random I/O。
建议:写C++,要尽量避免C的写法。用static_cast而不是括号转换符;用vector而不是C里面的数组;用string而不是char *;用智能指针而不是原始指针。当然I/O是个例外,printf()还是比cout好用的;转换数字和字符串时sprintf()也比stringstream快
只要用这本书学C++就已经是正确的了。
但是你的问题肯定是:我光看书懂是懂了,但是我不会写代码啊!
那也很简单啊,把书上的代码自己实现一遍啊。保证你各种编译错误,各种翻书,然后你就进步了,就正确了。
他将此称为“一万小时定律”。要成为某个领域的专家,需要10000小时,按比例计算就是:如果每天工作八个小时,一周工作五天,那么成为一个领域的专家至少需要五年
c/c++尤其适合这句话,如果下定决心要学c/c++,那么就不要有速成的思想
多敲代码,多思考
多敲代码,多思考
多敲代码,多思考
以上3点就是提高c/c++编程能力最捷径的方法了
编程提升技巧:
1、重写算法,选一个算法(如排序),查看并敲写所有现有的算法。然后思考有没有更好的办法,或者换一个写法会怎么,能不能再优化一些,也可以基于其中的某一个算法思考。
2、编写大型项目,大型项目跟小项目完全是两码事,会遇到各种各样的问题,在解决问题中会锻炼代码编写的能力,及思维能力。
3、参与不同类型的项目开发,不同项目会有不同项目的需求及问题,可以拓展眼界范围。
4、学习开发模式
5、学习其它编程语言(如java,c#,lua,js,php等),了解其中的优缺点。
6、总之,多敲代码,多思考
http://zhidao.baidu.com/question/372043601500759844
怎么用C++程序判断一个数素数?
i++) \/\/找出1——m之间的素数(因为第一个素数是2,所以从2开始){ if(m%i==0)break;if(i> =k+1)cout < <m < < " is a prime number! "; \/\/输出,m是素数 else cout < <m < < " is not a prime number! "; \/\/m不是素数 return 0;...
哪位大神帮个忙(c++)?
首先根据质数筛法,用数组prime标记0~100000中的所有质数,prime[i]==1表示i为质数 然后将prime数组转为前缀和数组,即令prime[i]等于prime[0]~prime[i]之和 表示0~i中的质数个数,这样任意区间[a,b]中的质数个数就等于prime[b]-prime[a-1]相应C++代码和运行结果如下:如图输出了1~30、1~...
c++判断素数
for(y=2;y<x;y++){ if(x%y==0){ return false;break; \/\/这句是多余的,return就跳出函数了 } return true; \/\/把 这句移到下面这个大括号外面 } \/\/ 移到这里
C++求超级素数(Super prime)问题
\/\/#include "stdafx.h"\/\/vc++6.0加上这一行.include "stdio.h"bool prime(int n){ int i;if(n>2 && !(n&1) || n<2)return false;for(i=3; i*i<=n;i+=2)if(!(n%i)) return false;return true;} void main(void){ int a[]={1,11,101,1001,10001,100001,1000001,...
关于直接跳过C 学c++ 的一些问题
直接看c++ primer,会c不会c都无所谓的,c++自成体系,语法倒是次要,关键是理解c++面向对象的思想
c++编写判断一个正整数是否是素数的函数
int prime(int x)你的函数运行后,如果是素数,返回 1,否则返回 0;if(b==0) 这个语句写反了,b=0就不是素数啦;你的 int prime(int x)函数里也是错的,if语句不能跳出循环,所以返回的 t就是就是最后一次循环的值 。include<iostream> using namespace std;int prime(int x){ int n...
C++设计:定义一个判断素数的函数,然后查找区间[100,200]的所有...
include<iostream> include<cmath> using namespace std;int prime(int x)\/\/判断是不是素数的函数,这里是100到200之间,可是下次要求不同了你得注意,如果要求变成0到100之间的时候你就得把0,1这两个特例给拿出来,而且2也得拿出来,因为2不适合于从2到根号2之间的数是否整除来判断,因为根号2...
用C++判断素数的函数,如果是素数,则返还true,否则返还false._百度知 ...
楼主的算法没什么大的错误,只是程序写的有些混乱。可以进行如下修改:include<iostream.h> int prime(int n);void main(){ int n;cout<<"请输入一个整数"<<endl;cin>>n;if (prime(n))cout<<"是素数"<<endl;else cout<<"不是素数"<<endl;} int prime(int n){ for (int i=2;i<n...
用c\/c++编写 N分解成素数之积的所有可能解 输出这些数字
C++编程中分解一个整数n为素数乘积的方法有多种,但最直接的方式是递归。此程序将n分解成素数乘积的所有可能组合。具体实现如下的代码所示:include include using namespace std;int m, a[1000], l = 0;定义一个素数判断函数prime:int prime(int m) { int i, k = sqrt(m);for (i = 2;...
用C++编写程序:求100-200以内的所有素数
define SIZE 10000 bool prime[SIZE];void Prime(){ memset(prime,true,sizeof(prime));prime[0]=prime[1] = false;for(int i=2;i<SIZE;i++){ if(prime[i]){ for(int j=i*2;j<=SIZE;j+=i)prime[j] = false;} } } 在使用前比如main开始时第一句调用Prime();这样可以求出0~...