C++標準の配列に変換
解説
data()はQVectorの要素をC++標準の配列に変換してそのポインタを返します.
constData()はQVectorの要素をC++標準の配列に変換してそのポインタをconst型で返します.
定義は以下の通りです.
T * QVector::data ()
const T * QVector::data () const
const T * QVector::constData () const
QVectorの各要素はメモリ上に連続して配置されます.data()はその先頭のポインタを返すだけです.従って変換に伴うオーバーヘッドはほとんどありません.
返されるポインタはQVectorが再配置されるまで有効です.QVectorの再配置は
append()や
insert()など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)
QString* pStr = vec.data();
out << pStr[0] << "," << pStr[1] << "," << pStr[2] << "," << pStr[3] << "\n";
return 0;
}
出力
0,1,2,3
最終更新:2011年09月24日 04:54