1

Ubuntu11.04でNetbeans7.1を使用しています。

次の呼び出し

set< Triangle > V;

エラーメッセージを表示します

error: ‘set’ was not declared in this scope

そして次の呼び出し

vector< Triangle > ans;

エラーメッセージを表示します

error: ‘vector’ was not declared in this scope

これは私の持っているにもかかわらず

#include <vector>
#include <set>
#include <map>

C++ファイルの先頭。

これを解決するのを手伝っていただければ幸いです。
ピーター。

4

3 に答える 3

6

ベクターセットとマップはc++標準ライブラリの一部であるため、でベクター/セット/マップを呼び出す必要があります

std::vector< Triangle > ans;

または追加

using namespace std;

includeステートメントの後。

于 2012-02-11T20:09:10.713 に答える
3

名前空間stdを忘れました:

std ::set<三角形>V; std ::vector<三角形>V;

于 2012-02-11T20:13:59.537 に答える
2

それらはstd名前空間に住んでいます。したがって、タイプ(std::vector)を完全に品質化するか、usingステートメント(using namespace std;)を使用します。

後者のオプションは、グローバル名前空間を汚染します。ヘッダーファイルでは絶対に行わないでください(そうしないと、ヘッダーをインクルードするときに名前空間全体がインポートされます)。衝突が発生しないことがわかっている場合にのみ、実装ファイルで行ってください。

#include <vector>

int main(...) {
    vector v;      // no worky
    std::vector v; // ok!
}
于 2012-02-11T20:08:26.993 に答える