首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++会合set容器可以插入数组元素吗

2013-06-25 
C++集合set容器可以插入数组元素吗?我想用set容器保存一些字符数组,这样可以快速的保存、查询和删除数组元

C++集合set容器可以插入数组元素吗?
我想用set容器保存一些字符数组,这样可以快速的保存、查询和删除数组元素。

已知字符数组都是12个字节的。

我这样声明set<char[12]>cmdIdTable有问题吗?

char str[12];
//对str的一些操作,str不是以0结尾的,char[11] !='\0'
cmdIdTable.insert(str)可以吗?

set容器的元素必须是可比较的吗?这样我是不是必须得为char[12]重载比较操作符呢?
[解决办法]
变通一下咯。

 
struct element{
char arr[12];
};

bool operator < (element const &, element const&);

std::set<element> datum;

记住数据有数据拷贝的开销'
[解决办法]
引用:
Quote: 引用:

变通一下咯。
 
struct element{
char arr[12];
};

bool operator < (element const &, element const&);

std::set<element> datum;

记住数据有数据拷贝的开销'

用结构体包装起来有点不太直接啊,万一后面忘了怎么办?

但是用数组是绝对不行的,容器要求元素类型是支持拷贝构造和扶植拷贝构造的。
另外,可以通过运算重载,让结构体用气来跟数组一样。
[解决办法]
用 std::array 就行了。
std::set<std::array<char,12>>

热点排行