pairについて。
Posted: 2015年12月27日(日) 13:26
C++,Win32APIを使用しております。
ランキングの最初の値を入れるとこでエラーが起きてしまいます
m_ranking.first = 999; //ランキングの最初の値
m_ranking.second = "aaaaaa";
ここです。書き方が悪いんでしょうか?
raning_name.h
ranking_name.cpp
ランキングの最初の値を入れるとこでエラーが起きてしまいます
m_ranking.first = 999; //ランキングの最初の値
m_ranking.second = "aaaaaa";
ここです。書き方が悪いんでしょうか?
raning_name.h
class Ranking_Name
{
private:
typedef std::pair<float, std::string> str_pair;
const int m_maxRanking;
std::vector<std::string>data;
std::vector<str_pair> m_ranking;
struct m_rankingless {
bool operator()(const str_pair& x, const str_pair& y) const {
return x.first < y.first;
}
};
public:
Ranking_Name();
~Ranking_Name();
bool Reading(); //ランキング読み込み
//Rankingを昇順にソート
void Sort_Asc();
//ランキング登録
void AddRanking(HDC);
int GetScoredata(int i){ return m_ranking[i].first; }
std::string GetNamedata(int i){ return m_ranking[i].second; }
};
ranking_name.cpp
bool Ranking_Name::Reading()
{
int num = 0;
int i;
std::string str;
std::ifstream ifs("ranking.txt"); //rankingのテキスト
if (ifs.fail()) {
for (i = 0; i < 5; i++){
m_ranking[i].first = 999; //ランキングの最初の値
m_ranking[i].second = "aaaaaa";
}
}
while (getline(ifs, str))
{
std::string tmp;
std::istringstream stream(str);
num += 1;
while (getline(stream, tmp, ','))
{
data.push_back(tmp); //カンマだったらtmpに一時的にデータを入れる
}
m_ranking.resize(num);
m_ranking[i].second = data[0];
m_ranking[i].first = atoi(data[1].c_str());
++i;
data.clear();
}
ifs.close();
return true;
}