QVectorの特定位置に挿入
解説
insert()はQVectorの任意の位置に新たな要素を挿入します.
定義は以下の通りです.
void QVector::insert ( int i, const T & value )
void QVector::insert ( int i, int count, const T & value )
引数iには挿入位置を指定します.引数countはいくつ挿入するかを指定します.引数valueは挿入する値を指定します.
QVectorの各要素はメモリ上に連続して配置され,またQVectorはコンストラクタで生成した際に,要素を格納するためにメモリを多めに確保します.そのため通常,末尾への挿入はメモリーの再配置を行うことなく行うことができます.一方,先頭への挿入は,すでに存在する各要素を後ろにずらす必要があるため,時間がかかります.
使用例
#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.insert(2, "X"); // vec = (0, 1, X, 2, 3);
foreach(QString str, vec) {
out << str << ",";
}
out << "\n";
vec.clear();
vec << "0" << "1" << "2" << "3"; // vec = (0, 1, 2, 3)
vec.insert(2, 2, "X"); // vec = (0, 1, X, 2, 3);
foreach(QString str, vec) {
out << str << ",";
}
out << "\n";
return 0;
}
出力
0,1,X,2,3,
0,1,X,X,2,3,
最終更新:2011年09月24日 04:20