ポインタ
#C++ #競プロ
https://aeroastro.sd.tmu.ac.jp/hydrodynamics/main/colums/CPP/pointer.html
https://qiita.com/agate-pris/items/05948b7d33f3e88b8967
値渡しは通常行っている処理という認識で問題ない
ポインタ渡しは、関数の呼び出し元の変数の書き換えを行うことができる。
つまり、新しい変数を定義するのではなく、コード内のアドレスを設定してあげることによって、どこからでも参照ができるようになっている
https://scrapbox.io/files/6667999dc6a6e0001cd300bc.png
この場合、vという値がポイント渡しによって更新されているのがわかる。
いつ役立つかというと
https://scrapbox.io/files/666797e9f03328001cb5c6ed.png
autoで型を定義してあげて、itが新しい配列の終端であるnewEndになるまでitをイテレート、itは一回一回更新していく
というような操作を可能にしている。
*unique や eraseは消した後の配列にヌルが残るので、このような処理が必要である
ちなみに、ポインタ渡しを行うとき、ヌルを参照してしまうとクラッシュしてしまうので、!=nullptrを用いた、ヌルチェックが必須である。