vector<int> n; // do something ... vector<int>().swap(n); // n を空にする
コンテナを空にする方法として、各所で紹介されているC++のSTLのイディオム。これはこれで、スマートかもしれないけれど、やっぱり自然ではないような。
C++の習得の難しさは、言語仕様の難しさもさることながら、イディオムの多さのような気がします。しかも。イディオムにそわない書き方をしても、それもまた正しいC++のプログラムなわけで。
仕様が柔軟なことで、さまざまな表現ができるわけですが、学習途上の人にとっては、とらえどころのないものになっている気がします。コーディングルールなどで道しるべをつけたりしますが、どこか本末転倒。
思いつきですが。イディオムを仕様に取り込んで、扱いやすくするという選択肢も、ありかもしれません。自由が制限されますが、もともとイディオムで制限されるのなら、利用者としては変わりないような。