変数をあるだけ読み込む
Posted: 2013年10月03日(木) 21:31
といったように、アルファベット1文字の後に数字がいくつか並んだ配列データをアルファベット毎に場合分けして配列の配列に格納したいです。
いくつあるか分からない変数をどのようにして読みとれば全部読みとる事が出来るのでしょうか?
while (getline(ifs, str)) {
istringstream iss(str);
char c = 0;
iss >> c;
vector<vector<int> > *m;
if (c == 'v') m = &v_list;
else if (c == 'f') m = &f_list;
else continue;
m->push_back(vector<int>());
typedef istream_iterator<int> t;
copy(t(iss), t(), back_inserter(m->end()[-1]));
}
#include <fstream>
#include <sstream>
#include <string>
#include <vector>
#include <map>
#include <iostream>
using namespace std;
int main()
{
map<char, vector<int>> data;
ifstream ifs("data");
string str;
while (getline(ifs, str))
{
istringstream iss(str);
char c;
int x;
iss >> c;
auto& v = data[c];
while (iss >> x)
{
v.push_back(x);
}
}
for (auto elem : data)
{
cout << elem.first << " :";
for (auto num : elem.second)
{
cout << ' ' << num;
}
cout << endl;
}
}