QVectorの先頭・末尾に挿入
解説
prepend(),push_front()は引数で指定した値をQVectorの先頭に追加します.prepend()とpush_front()の処理内容は同じです.
append(),<<,push_back() は引数で指定した値をQVectorの末尾に追加します.append()とpush_back()と<<の処理内容は同じです.
定義は以下の通りです.
void QVector::prepend ( const T & value )
void QVector::append ( const T & value )
QVector<T> & QVector::operator<< ( const T & value )
void QVector::push_front ( const T & value )
void QVector::push_back ( const T & value )
引数valueには挿入する値を指定します.
QVectorの各要素はメモリ上に連続して配置され,またQVectorはコンストラクタで生成した際に,要素を格納するためにメモリを多めに確保します.そのため通常,末尾への挿入はメモリーの再配置を行うことなく行うことができます.一方,先頭への挿入は,すでに存在する各要素を後ろにずらす必要があるため,時間がかかります.
push_front(),push_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.prepend("0"); // vec = ("0")
vec.prepend("1"); // vec = ("1", "0")
vec.append("a"); // vec = ("1", "0", "a")
vec.append("b"); // vec = ("1", "0", "a", "b")
vec << "!"; // vec = ("1", "0", "1", "b", "!")
vec << "@"; // vec = ("1", "0", "1", "b", "!", "@")
foreach(QString str, vec) {
out << str << ",";
}
out << "\n";
return 0;
}
出力
1,0,a,b,!,@,
最終更新:2011年09月24日 04:19