文字列を取り、各文字の文字頻度を与え、それを2D配列または2Dベクトルに格納するメソッドを試しています。コードを実行するとコンパイラ エラーが発生し続け、何を言っているのかわかりません。エラーについていくつか調査しましたが、まだ問題を解決できていません。参照されるクラスが私のものではないため、何らかのヘッダーが欠落している必要があると思います。
vector<pair<char, int>> CaesarCypher::charFreqGen(string inputFileName)
{
string input = GetInputString(inputFileName);
vector<pair<char, int>> output;
for (auto c : input)
{
auto it = find(output.begin(), output.end(),[=](const pair<int, char>& p) {return p.first == c; });
if (it != output.end())
it->second++;
else
output.push_back(std::make_pair(c, 1));
}
return output;
}
これが私が受け取っているエラーです:
Error 1 error C2678: binary '==' : no operator found which takes a left-hand operand of type 'std::pair<char,int>' (or there is no acceptable conversion) c:\program files (x86)\microsoft visual studio 12.0\vc\include\xutility 3026 1 PA1_CaesarCypher