C++ std::set<;字符串>;插入函数

C++ std::set<;字符串>;插入函数,c++,C++,我编写了一个小程序,在std::set中插入一组字符串 为此,我在一个.h文件中定义了一个set变量,然后在我的主函数中,我只是在.h文件中定义了一个set变量 我得到了堆芯转储,这里是相同的堆栈跟踪 #0 0x007a14a1 in std::string::compare () from /usr/lib/libstdc++.so.6 #1 0x080d459c in std::operator< <char, std::char_traits<char>, st

我编写了一个小程序,在std::set中插入一组字符串

为此,我在一个.h文件中定义了一个set变量,然后在我的主函数中,我只是在.h文件中定义了一个set变量

我得到了堆芯转储,这里是相同的堆栈跟踪

#0  0x007a14a1 in std::string::compare () from /usr/lib/libstdc++.so.6
#1  0x080d459c in std::operator< <char, std::char_traits<char>, std::allocator<char> >    (__lhs=@0xbfef09d0, __rhs=@0x87de230) at /usr/lib/gcc/i386-redhat- linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h:2158
#2  0x080d4580 in std::less<std::string>::operator() (this=0xb65d530, __x=@0xbfef09d0, __y=@0x87de230) at /usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_function.h:227
#3  0x0810411a in std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::insert_unique (this=0xb65d530, __v=@0xbfef09d0) at /usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_tree.h:919
#4  0x0810246c in std::set<std::string, std::less<std::string>, std::allocator<std::string> >::insert (this=0xb65d530, __x=@0xbfef09d0) at /usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_set.h:314
/usr/lib/libstdc++.so.6中std::string::compare()中的0 0x007a14a1 #在/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../../../../../include/c++/3.4.6/bits/basic_string.h:2158处,std::operator<(uu-lhs=@0xbfef09d0,uuuu-rhs=@0x87de230)中的1 0x080dd459c #std::less::operator()(this=0xb65d530,uuux=@0xbfef09d0,uuu y=@0x87de230)中的2 0x080d4580位于/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../../../include/c++/3.4.6/bits/stl-function.h:227 #3 0x0810411a在/usr/lib/gcc/i386 redhat linux/3.4.6/../../../../../../../../include/c++/3.4.6/bits/stl_tree.h:919处插入唯一的(this=0xb65d530,@0xbfef09d0) #std::set::insert(this=0xb65d530,uuu x=@0xbfef09d0)中的4 0x0810246c位于/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../../../../../include/c++/3.4.6/bits/stl_-set.h:314 示例代码:

X.h

    std::set<string> test;

X.C

    int main()
    {
        test.insert("hi");
        return 0;
    }
X.h
标准:集合测试;
X.C
int main()
{
测试。插入(“hi”);
返回0;
}
有人能告诉我我犯了什么错误吗?

您是否在相关位置包括
?如果你能发布一个小的代码示例来重现这个问题,那就更好了。它是有效的。您是否将源文件命名为扩展名为
.c
的文件?是的,包括和。
std::set
行是否输入错误?它应该是
std::set
。这个示例代码过于简单,无法告诉我们任何事情,您只有这些吗?