C++ C字符串集 #包括 #包括 使用名称空间std; int main(){ //你的密码在这里 设置rno; 序号插入(“208/CO/11”); rno.插入(“206/CO/11”); 序号插入(“209/CO/11”); 序号插入(“208/CO/11”); set::迭代器; for(it=rno.begin();rno.end()!=it;it++) cout

C++ C字符串集 #包括 #包括 使用名称空间std; int main(){ //你的密码在这里 设置rno; 序号插入(“208/CO/11”); rno.插入(“206/CO/11”); 序号插入(“209/CO/11”); 序号插入(“208/CO/11”); set::迭代器; for(it=rno.begin();rno.end()!=it;it++) cout,c++,string,C++,String,问题是std::set需要一个比较器,默认情况下是operator问题是std::set需要一个比较器,默认情况下是operator“为什么这个代码不工作?”你说的不工作是什么意思?崩溃?不编译?char[10]…您没有分隔符空字符\0在“为什么此代码不工作?”中,您所说的不工作是什么意思?崩溃?不编译?字符[10]…您没有分隔符空字符\0,这并不能解释为什么使用char*而不是char[10]尽管如此。@Serdalis是的,确实如此。您可以将指针与运算符进行比较。问题很可能是普通数组不可复制

问题是
std::set
需要一个比较器,默认情况下是
operator问题是
std::set
需要一个比较器,默认情况下是
operator“为什么这个代码不工作?”你说的不工作是什么意思?崩溃?不编译?char[10]…您没有分隔符空字符
\0
在“为什么此代码不工作?”中,您所说的不工作是什么意思?崩溃?不编译?字符[10]…您没有分隔符空字符
\0
,这并不能解释为什么使用
char*
而不是
char[10]
尽管如此。@Serdalis是的,确实如此。您可以将指针与运算符进行比较。问题很可能是普通数组不可复制或不可分配。@juanchopanza这也是一种可能性,但即使是这样,运算符<也会咬到您。这是不可能的。即使您为
字符[10]提供了一个比较器,这也会失败
。这并不能解释为什么使用
char*
而不是
char[10]
尽管如此。@Serdalis是的,确实如此。您可以将指针与运算符进行比较。问题很可能是普通数组不可复制或不可分配。@juanchopanza这也是一种可能性,但即使是这样,运算符<也会咬到您。这是不可能的。即使您为
字符[10]提供了一个比较器,这也会失败
#include <iostream>
#include <set>
using namespace std;

int main() {
    // your code goes here
    set<char[10]> rno;
    rno.insert("208/CO/11");
    rno.insert("206/CO/11");
    rno.insert("209/CO/11");
    rno.insert("208/CO/11");
    set<char[10]>::iterator it;
    for(it=rno.begin();rno.end()!=it;it++)
        cout<<*it<<endl;
    return 0;
}