C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

PythonとC++の名前空間をどのように比較しますか?


PythonとC++の名前空間は実際には比較できません。たとえば、C++では-

// a.h
namespace ns {
    struct A { .. };
    struct B { .. };
}

これを行うとしたら-

#include "a.h"
using ns::A;

そのコードのポイントは、修飾されていないAを記述できることです(つまり、ns ::Aを記述しなくてもかまいません)。ここで、Pythonに相当するものを-

と見なすことができます。
from a import A

ただし、使用方法に関係なく、a.hヘッダー全体が含まれ、コンパイルされるため、ns ::Bを記述できますが、Pythonバージョンではa.Bは表示されません。他のC++バージョン

using namespace ns;

また、Pythonの類似物はありません。コードベース全体で名前空間nsからすべての名前を取り込み、名前空間を再利用できます。たとえば、

#include <vector>
#include <map>
#include <algorithm>
using namespace std; // bring in EVERYTHING

その1行は-

と同等です
from vector import *
from map import *
from algorithm import *

少なくともそれが行うことでは、しかし実際には名前空間stdにあるものだけを持ち込みます-これは必ずしもすべてではありません。


  1. C ++で組み合わせと順列を計算する方法は?

    組み合わせと順列は組み合わせ論の一部​​です。順列は、要素が一度に1つずつ、一度にいくつか、または一度にすべて取得される場合に、要素のセットが作成できるさまざまな配置です。組み合わせとは、要素を一度に1つずつ、一部を一度に、または一度にすべて取得する場合に、要素を選択するさまざまな方法です。 合計n個の要素があり、r個の要素を配置する必要がある場合の順列の数。 合計n個の要素があり、r個の要素を選択する必要がある場合の組み合わせの数。 C++で組み合わせと順列を計算するプログラムは次のとおりです。 例 #include <iostream> using names

  2. Pythonの名前空間とスコープ

    Pythonでは、変数、関数、ライブラリ、モジュールなどを扱います。使用する変数の名前が、別の変数の名前として、または別の関数や別のメソッドの名前としてすでに存在している可能性があります。このようなシナリオでは、これらすべての名前がPythonプログラムによってどのように管理されているかを知る必要があります。これが名前空間の概念です。 以下は名前空間の3つのカテゴリです ローカル名前空間:プログラムによって宣言された関数と変数のすべての名前は、この名前空間に保持されます。この名前空間は、プログラムが実行されている限り存在します。 グローバル名前空間:この名前空間は、Pytho