仕様アルゴリズム・コード(C ++)

C ++私は従うコーディング標準は、この「高品質なC ++ / Cプログラミングガイド」です

http://www.scholat.com/course/V_courseResourceDownload.html?courseId=1227&resourceId=12836

ヘッダファイルの1構造

繰り返しヘッダが参照されないようにするために、ブロックIFNDEF /定義/ ENDIF構造を前処理することによって生成されるべきです。

書式#include <filename.h>ヘッダ・ファイル・フォーマットで標準ライブラリ(検索を開始するには、標準のライブラリディレクトリからコンパイラ)を参照します。

#include「filename.h」形式で(検索を開始するには、ユーザーの作業ディレクトリからコンパイラを)非標準ライブラリのヘッダファイルを参照します。

のみ保存されたヘッダ・ファイル「の定義を」保存するのではなく「宣言」

C ++構文では、クラスのメンバ関数を自動的にインライン関数を同じ文で定義され、することができます。これは執筆の利便性をもたらすでしょうが、それは一貫性のないスタイル、良いよりも害をもたらしました。別途、関係なく、どのように小さな関数本体のメンバ関数の宣言の定義ことが示唆されました。

かかる記述のヘッダファイルにextern int型の値ではない現象として、グローバル変数の使用を促進しません。

2.1 空行

空白行は、プログラム・セクションのパーティションとして機能します。まともな(しかし、あまり何もより多くの)空白行はレイアウトがより明確にプログラムを作成します。印刷プログラムは、いくつかの紙を消費します空白行が含まれていますが、空白行は、メモリを無駄にしてはいけないが、それは価値があります。だから、空白行を使用することに消極的になることはありません。 

各クラス宣言の後に、各空白行の終了後関数定義が追加されます。

体内の機能は、密接に関連する湾曲論理ステートメントの間に空白行せずに、パーティションブランクラインの他の部分に加えられるべきです。

// 空行

無効関数1(...)

{

  ...

}

// 空行

無効機能2(...)

{

  ...

}

// 空行

無効関数3(...)

{

  ...

}

 

// 空行

しばらく(条件)

{

文1;

// 空行

IF(条件)

{

文2;

}

{

statement3;

}

// 空行

statement4;

}  

2.2 コードの行

コードの行は、ちょうど変数の定義として、一つのことを行う、あるいは一つだけの文を書きます。このコードは読みやすいとコメントを書きやすいです。

、彼の党からの口座ステートメントにそうしながら、ため、場合、文は続いていない実行されます。かかわらず、文を実行するために追加されますどのくらいの{}。これは、書き込みエラーを防ぐことができます。

2.3 ライン内のスペース

キーワードの後にはスペースを残したいです。少なくともconstの、仮想、インライン、ケースや他のキーワードとした後、あなたは、スペースを残しておきたい、またはキーワードを区別することはできません。一方で、ために、あるかのようにキーワードの後に、そのような話はスペース左括弧を残す必要がある「(」、キーワードをハイライトします。

左括弧が続く、関数名の後にスペースを入れないでくださいキーワードを区別するために「(」。

「(」背中、続い「)」、「」、 『;』前方に続いて、スペースなしで続きます。

''そのような機能(X、Y、Z)のような空間を残しますもし「;」記号は、(;条件;更新初期化)と同様に、その後スペースを残すために、行の終わりではありません 。

など代入演算子、比較演算子、算術演算子、論理演算子、ビットフィールド演算子、 "="、 "+ ="、 "> ="、 "<="、 "+"、 "*"、「% "" &&前と後"" || "" << "" ^」 演算子は、スペースを二価すべきです。

単項演算子 " - "、 "+"、 "!" " - "の前後にスペースを入れず、 "&"(アドレス演算子)。

[] 」、「」 『 - >』スペースなしの前と、オペレータの後。

長い文の発現のために、文場合、コンパクト理由は、適切には(i = 0; iが10 <; I ++の)のためのようないくつかのスペース、除去することができる、及び((<= B)&&(C <= Dの場合を))

FUNC1(int型のx、int型のy、int型z)を無効; //良いスタイル

FUNC1(int型のx、int型のy、int型z)を無効; //悪いスタイル

もし(年> = 2000)//良いスタイル

もし(年> = 2000)//悪いスタイル

もし((A> = B)&&(C <= D))//良いスタイル

もし(A> = B && C <= D)//悪いスタイル

以下のための(I = 0;私は10 <;私は++)//良いスタイル

以下のための(I = 0;私は10 <;私は++)//悪いスタイル

以下のための(I = 0;私は10 <;私は++)//過度のスペース

X = A <B:B; //良いスタイル?

X = <:? bのB; //悪いスタイル

int型* X = Y&; //良いスタイル  

int型* X = Y&; //悪いスタイル  

配列は、[5] = 0; //配列を書かないでください[5] = 0;

a.Function(); //代わりに関数を書くの();

b->Function();                            // 不要写成 b -> Function();

 

2.4 对齐

程序的分界符‘{’和‘}’应独占一行并且位于同一列,同时与引用它们的语句左对齐。

{ }之内的代码块在‘{’右边数格处左对齐。

 

void Function(int x)

{

… // program code

}

 

void Function(int x){

… // program code

}

 

if (condition)

{

… // program code

}

else

{

… // program code

}

if (condition){

… // program code

}

else {

… // program code

}

for (initialization; condition; update)

{

… // program code

}

for (initialization; condition; update){

… // program code

}

While (condition)

{

… // program code

}

while (condition){

… // program code

}

如果出现嵌套的{},则使用缩进对齐,如:

{

   …

 {

   …

 }

  …

}

 

                                           风格良好的对齐                                                                    风格不良的对齐

这边书有详细全面的代码规范讲解,有助于我们养成良好的代码习惯,在这里不再一一举例;

 

《数学之美》读后感

统计语言模型
  “数学是解决信息检索和自然语言处理的最好工具。”从小到大,我们一直学习数学,在感到枯燥或者乏力之时,我们时常会思考,数学的作用。然而用数学工具解决语言问题,这便是一种数学的美;如何让机器理解人类语言这种最复杂最动态的信息是一大难题,但是人们在研究语法规则的方法上几乎毫无突破,后来随着计算机的发展,用数学方法处理自然语言的方法才得以实现。当时一批杰出的科学家利用大型计算机来处理人类语言问题。统计语言模型就是在那个时候提出的。书中举出了一个简单的统计模型来解决一个文字序列是否能构成一个大家能理解的句子的问题:
句子S出现的概率等于每一个词出现的概率相乘,于是 P(S) 可展开为:
                                                P(S) = P(w1)P(w2|w1)P(w3| w1 w2)…P(wn|w1 w2…wn-1)
假定任意一个词wi 的出现概率只同它前面的词 wi-1 有关(即马尔可夫假设),于是问题就变得很简单了。现在,S 出现的概率就变为:
                                                P(S) = P(w1)P(w2|w1)P(w3|w2)…P(wi|wi-1)… 

事实证明,统计语言模型比任何已知的借助某种规则的解决方法都有效。数学的美妙之处在于把复杂的问题变得简单化,解决实际问题来为人们服务。



 

 

おすすめ

転載: www.cnblogs.com/gwpsf/p/11484976.html