Visual Studioで実行したいことを実行する関数があり、それをGCCに転送して、すべてがそこで機能することを確認していました。
std::find
関数の使用に起因するコンパイルエラーが多数発生しました。
誰かが見て、GCCでこれらのエラーしか発生しない理由を理解するのを手伝ってくれることを望んでいました。コードのサンプルは次のとおりです:http://cpp.sh/6pky
// Example program
#include <iostream>
#include <string>
#include <vector>
#include <list>
#include <utility>
using namespace std;
int main()
{
vector < list < pair <string, string> > > v;
v.resize(15);
pair<string, string> k ("foo", "bar");
auto & whichList = v[2];
if(find(begin(whichList), end(whichList), k) != end(whichList))
cout << "true";
}
問題の部分はfind(begin(whichList), end(whichList), k)
です。
ペアのリストをペアと比較できないというエラーが表示されます(今週私がよく扱っている問題)。VS2015がこのエラーを認識しないだけでなく、タスクを適切に実行する理由について、私は主に興味があります。
あなたはしませんでした#include <algorithm>
、住んでいるヘッダーstd::find
。
Visual Studioの標準ライブラリの実装では、純粋に偶然、あなたはヘッダように編成する必要がありましたが、 #include
自分自身に起こってしまう#include
INGの<algorithm>
。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加