こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

listにvectorを格納

言語はC++
OSは、Vine2.4.20rev1です。

次のプログラム:
#include <iostream>
#include <cstdlib>
#include <stdio.h>
#include <list>
#include <vector>
using namespace std;

void main()
{

list <vector <double> > B;
list <vector <double> >::iterator iteB;
vector <double> dat1;

dat1.push_back(1.);

iteB=B.begin();
B.insert(iteB,dat1);

double limit=0.;
vector <double> dat2;

dat2.push_back(limit);

iteB=B.begin();
int cnt=0;

while((*iteB)[0]>=limit && cnt<B.size()){
iteB++;cnt++;
}

}

において、格納された数字は行単位でobjectになるのではなく、
マス単位でobjectになるようです。
つまり、incrementは、行単位で一斉に行われるのではなく
ひとつづつ手で移動させなければならない、と。

さて、どのように書くのがシンプル、あるいは標準的なのでしょうか?

投稿日時 - 2004-03-06 18:24:31

QNo.798611

困ってます

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

質問の内容がわかりにくいのですが、リストに入っているdouble型の値にアクセスしたいということでしょうか。それでしたら、

typedef list <vector <double> >::iterator LIST_IT; //この辺はお好みで

for (LIST_IT i = B.begin(); i != B.end(); i++) {
  for (int j = 0; j < (*i).size(); j++) {
    cout << j << " " << (*i)[j] << endl;
  }
}

みたいにやっておけばよいかと思います。
STLはほとんど知らないので、変な事を書いてたらごめんなさい。

投稿日時 - 2004-03-07 13:27:41

お礼

お手数お掛けしてしまって申し訳ないんですが、
あらたに質問を作りました。
よければ回答をお願いいたします。

投稿日時 - 2004-03-07 14:09:44

あなたにオススメの質問