QVectorから要素を削除
解説
remove()はQVectorの任意の位置の要素を削除します.
pop_front()はQVectorの最初の要素削除します.
pop_back()はQVectorの最後の要素を削除します.
定義は以下の通りです.
void QVector::remove ( int i )
void QVector::remove ( int i, int count )
void QVector::pop_front ()
void QVector::pop_back ()
remove()の引数iには削除する位置,引数countには長さを指定します.countを指定しない場合は1つの要素のみを削除します.
QVectorの各要素はメモリ上に連続して配置されるため,削除した要素の後に続く要素が全方向につめられます.そのため要素数の多いQVectorに対してremove()を行うと,削除位置(特にpop_front())によってはデータの再配置に時間がかかります.
pop_front(),pop_back()はSTLに対する上位互換のために用意されています.
使用例
#include <QTextCodec>
#include <QTextStream>
#include <QVector>
int main(int argc, char *argv[]) {
QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
QTextStream out(stdout);
QVector<QString> vec;
vec << "0" << "1" << "2" << "3"; // vec = (0, 1, 2, 3)
vec.
remove(1); // vec = (0, 2, 3) vec.pop_front(); // vec = (2, 3)
vec.pop_back(); // vec = (2)
foreach(QString str, vec) {
out << str << ",";
}
out << "\n";
vec.clear();
vec << "0" << "1" << "2" << "3"; // vec = (0, 1, 2, 3)
vec.
remove(1,2); // vec = (0, 3) foreach(QString str, vec) {
out << str << ",";
}
out << "\n";
return 0;
}
出力
2,
0,3,
最終更新:2011年09月24日 04:58