C ++ 11のPython'oに似た関数

私から個人的に:

C ++ 11は、言語に特に重要なものをもたらしませんでした。 大まかに言って、私はいくつかのポイントを単純化しただけです。 実際、C ++の柔軟性により、すべてを行うことができます(ほとんどすべて:バキュームしません)。 しかし、それでも、最も簡単ではないプログラミング言語の1つが理解しやすく、認識しやすく、仕事に便利になると楽しいことを認めなければなりません。



カットの下のテキストの翻訳。 ジョン・D・クックによる投稿。



新しいC ++標準(つまりC ++ 11)には、最近出会ったPythonに似た関数がいくつか含まれています。 この記事では、forループと生の文字列を直接扱います。



Pythonでは、ループカウンターなしでリストを確認できます。 例:

for p in [2, 3, 5, 7, 11]: print p
      
      





同様の何かがC ++ 11で使用できます。

  int primes[5] = {2, 3, 5, 7, 11}; for (int &p : primes) cout << p << "\n";
      
      





Pythonには生の文字列もあります。 文字列の前に文字Rを追加すると、文字列は文字ごとに解釈されます。 例のコード:

  print "Hello\nworld"
      
      





次の結果が得られます。

こんにちは

世界





しかし:

 print R"Hello\nworld"
      
      





出力されます:

こんにちは\ nworld



\ nは改行として認識されず、単に2つの別々の文字として表示されるためです。



C ++ 11では、生の文字列も同じ方法で使用されますが、引用符内に区切り文字も必要です。

  cout << R"(Hello\nworld)";
      
      





C ++ 11の生の文字列構文は、Pythonの対応する文字列よりも読みにくいです。 ただし、このような文字列には二重引用符を含めることができるという利点があり、文字列自体は文字列を終了しません。 例:

  cout << R"(Hello "world")"; //      
      
      





出力されます:

こんにちは、「世界」



Pythonでは、一重引用符と二重引用符は交換可能であるため、これは必要ありません。 文字列内で二重引用符を取得するには、外部で単一引用符を使用する必要があります。 また、C ++ 11の生の文字列には大文字と小文字のRが必要です。Pythonとは異なり、大小両方を使用できます。



C ++ 11機能はgcc 4.6.0でサポートされています。 Windows用gccのMinGWバージョンは、 ここからダウンロードできます 。 C ++ 11関数を使用するには、コマンドライン-std = c ++ 0xに次のパラメーターを追加する必要があります。

例:

g ++ -std = c ++ 0x hello.cpp



Visual Studio 2010は、多くの新しいC ++ 11機能をサポートしていますが、残念ながら、ここでは説明しません。



All Articles