搞清楚C ++集

时间:2014-01-16 18:00:06

标签: c++ syntax set

有人可以给我一些指导或指导我一个关于C ++ set对象的好教程吗?

我有一段简单的代码:

#include <iostream>

using namespace std;

int main()
{
    char set[8];
    int set[9];
    return 0;
}

但此代码中的set明显不同于此引用中的set? :

http://www.cplusplus.com/reference/set/set/set/

如果我尝试编译此代码,则会收到以下错误:

enter image description here

令我不安的是,在代码中定义set时,set定义的变量/标识符没有?或者这是默认构造函数或其他东西。为什么我会收到错误?你不能从set创建两个对象吗?为什么?对不起,如果我的问题是新手,但我似乎没有找到任何这方面的例子...所以我不明白如何使用set ......

thnx任何帮助=)

3 个答案:

答案 0 :(得分:7)

您将char的数组命名为“set”。 随后,您将int的数组命名为“set”。

你真正想做的事情如下:

std::set<char> my_chars;
std::set<int>  my_ints;

“&lt;&gt;”当您实例化它时,尖括号将类型传递给std :: set类模板。

答案 1 :(得分:4)

在第

char set[8];

您使用名称“设置”和类型 char[8]定义变量。

在第

int set[9];

您使用名称“设置”和类型 int[9]定义另一个变量。 (这应该会导致编译器错误,因为您无法在同一范围内定义两个具有相同名称的东西)

链接引用涉及类型 std::set<T>。您可以定义std::set<int>类型的变量(在使用该集合之前必须用T替换某些东西) 使用语法

std::set<int> my_set;

答案 2 :(得分:1)

您已经使用类型setchar再次定义了相同的变量set,但这次使用了类型int。这导致了这个问题。

尝试声明以下内容:

set<char> setchar;
set<int>  setint;

不要忘记#include <set>