QVectorの任意の位置の要素を参照
解説
at(),value(),[]はQVectorの任意の要素を取得します.
[]は要素の取得に加え,上書きも行うことができます(at()と
replace()の機能を兼ね揃えています).
定義は以下の通りです.
const T & QVector::at ( int i ) const
T QVector::value ( int i ) const
T QVector::value ( int i, const T & defaultValue ) const
T & QVector::operator[] ( int i )
const T & QVector::operator[] ( int i ) const
引数iには要素の位置を指定します.defaultValueはiがQVectorの有効範囲を超えていたときに返される値です.value()のみ指定できます.
[]はwrite-on-memoryが発生するため,at()に比べて処理速度が遅くなります.リードオンリーの処理の場合はat()を使用するべきです.
QVectorの最初や最後の要素が特定の値と一致するかどうかはat()を用いなくても,
startsWith,
endsWithで確認することができます.
使用例
#include <QTextCodec>
#include <QTextStream>
#include <QVector>
int main(int argc, char *argv[]) {
QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
QTextStream out(stdout);
QVector<QString> vec(5); // vec = (,,,,,)
for (int i = 0 ; i < 5; i++) {
vec[i] = QString('a' + i);
out << vec.at(i) << ",";
}
// vec = (a, b, c, d, e)
out << "\n";
out << vec.at(0) << "\n";
out << vec.value(0) << "\n";
out << vec.value(5, "x") << "\n"; // lstに5番目の値は存在しないので"x"が返される.
return 0;
}
出力
a,b,c,d,e,
a
a
x
最終更新:2011年09月24日 04:59