# ACPC2019 day1 参加記録

# 結果

途中から参加して2完でした。ABは問題なく解けたのですが, CでREが出てしまい困り果てた末の2完でした。

# 気づいたこと・感想

  • std::vectorはループの中でサイズ変更の可能性がある場合, イテレータを用いたループをするべきではない
  • そのような場合, イテレータの変わりにindexとsize()を用いるべきである

この関数を呼び出す前にsize() < capacity()であった場合、この関数の実行は定数時間で行われる。そうでない場合は、メモリ領域の再確保と、その領域への要素のコピーもしくはムーブが行われるため、線形時間で実行される。

  • ということで, ループを行っている間にsize()を変更するとメモリの再配置が行われるため, イテレータの情報が古くなってしまう
  • 何も知らずに機能を使うとこうなることを知った
Last Updated: 9ヶ月前