【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のビット(シフト演算)の各組合せに対して

ビットが立っているか(ビット演算)を判別すれば良い

集合理論 · WannaBePG/AP@d5cecba · GitHub

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で変更を行う。
[変更]の[+]を選択(変更がステージングされる)。
[コミット]
[プッシュ]