【Cpp】ノード?
背景
多数のメンバ変数があるクラスが存在
上記のクラスの配列を管理しているクラスがある
メンバ変数を参照するためにゲッターやセッターを作成しているため、なんとなく見通しが悪い
ノードにすれば、先頭からいろいろ操作できるのでは?
ノード
前と後のノードを持つ
前はポインタ、後はunique_ptrにする
コード
https://github.com/WannaBePG/Try/tree/master/Try
上記のNode.hとNode.cpp
【応用情報】集合理論
集合理論(Set Theory)
ある条件を満たし、他のものとは明確に区別できる要素の集まり
べき集合(Power Set)
空集合Φと自身を含めた部分集合
真部分集合(True Subset)
べき集合のうち自身を除いたもの
プログラムにしてみる
べき集合
各要素は集合に含まれる・含まれないの2通りになる。
要素がn個存在する場合、2^n通り⇒べき集合(Power Set)
2^n通りを考える
{x1, x2, ..., xn}の集合がある場合、各要素が含まれる・含まれないを考えれば良い。
全て含まれない場合:{0, 0, ..., 0}
...
全て含まれる場合:{1, 1, ..., 1}
n-1のビットの全て組み合わせを考えれば良い。
考え方
n-1のビット(シフト演算)の各組合せに対して
ビットが立っているか(ビット演算)を判別すれば良い
Visual StudioとGitHubの連携
環境
Visual Studio 2022 Community Edition
アカウントの登録
忘れた。
多分Visual Studio と GitHub の連携が向上を見ながら作成。
リポジトリの作成
[Git]-[Gitリポジトリの作成]-なにもしない-[作成とプッシュ]
でソリューションに対応したリポジトリがリモートリポジトリに作成される。
[Git変更]ウィンドウ
簡単な説明(まだ勉強中)
フェッチ(fetch)
リモートリポジトリ(from)の最新情報をローカルリポジトリに取り込む
プル(pull)
リモートリポジトリ(from)の最新情報をローカルリポジトリに反映
フェッチとプルの違い
フェッチはデータを取ってくるのみ。プルはフェッチとマージ(merge)を行う(反映)。
プッシュ(push)
リモートリポジトリ(to)に自分の変更履歴をアップロードする
同期
プル後にプッシュ
ステージ
特定の変更内容をindexに登録する。≒次回のコミットに含まれるようにgitに指示する
[+]
[すべてをステージ]。[変更]の内容をステージングする。
簡単な流れ
Visual Studioで変更を行う。
[変更]の[+]を選択(変更がステージングされる)。
[コミット]
[プッシュ]