.csv からデータを読み取り、.csv ファイルを作成するプログラムがありますmultimap
。以下に簡単なバージョンを貼り付けました。それは正常に動作しますが、終了時に非常にゆっくりと実行されます (つまり、プログラムが出力を出力してreturn 0;
. 、ファイルサイズに比例します。
出口をスピードアップする方法があるかどうか疑問に思っていますか?メモリからデータを消去しているため、遅いと思います。 CTRL+c
ただし、ターミナルウィンドウですぐにシャットダウンします。私は見ましたが、あまり見つかりませんでした。
#include <iostream>
#include <sstream>
#include <fstream>
#include <string>
#include <vector>
#include <map>
int main (int argc, char* argv[])
{
std::string filename = "edge_data_mid.csv";
// obtain multimaps
std::ifstream fin;
fin.open(filename.c_str(), std::ios_base::in|std::ios_base::binary);
if (!fin.is_open()) {
std::cout << "could not open the file '" << filename << "'" << std::endl;
exit(EXIT_FAILURE);
}
std::multimap<std::string, std::string> gciting;
std::string line;
// this loop parses the file one line at a time
while (getline(fin, line)) {
std::istringstream linestream(line);
std::string item;
std::string nodea;
std::string nodeb;
getline(linestream, item, ',');
nodea = item;
getline(linestream, item);
nodeb = item;
gciting.insert(std::pair<std::string, std::string>(nodeb, nodea));
}
fin.close();
std::cout << gciting.count("3800035") << std::endl;
return 0;
}