在我的小项目中,我想制作一个小程序,我必须存储无限制的唯一字符串,但用户可以多次输入相同的唯一字符串.但是在我的数组中,我只希望只保存一次唯一ID.简单来说,我不想在我的数组中重复数据.我想用C++做到这一点,但不知怎的,我无法得到逻辑?有人可以帮帮我吗?
#include#include #include using namespace std; int main(){ string str[100],ch; int i,j,n; j=0;n=0; //str[0]= "a"; do { getline(cin,ch); for (i=0;i 我是C++的老师,所以请在这里帮助我
1> John Dibling..:如果你想维护一个唯一的列表
strings
,那么最简单的事情就是使用正确的工具来完成工作; 即一个set
而不是一个数组string
.编辑:
如果您不需要对字符串集合进行排序(如同
set
),并且您可以使用它,则使用unordered_set
而不是使用它更合适set
.set
每次添加字符串时都会进行不必要的排序.EDIT2:
A
set
是一个关联数组,这意味着只能有一个具有给定键的元素.在这种情况下set
,关键是string
你插入.如果多次插入相同的密钥,则仍然只有一个实例set
.这是一个示例程序,用于说明这一点.如果你运行它,你会发现输出只是一个"foo",即使"foo"被插入3次:
#include#include #include #include #include using namespace std; int main() { set my_strings; my_strings.insert("foo"); my_strings.insert("foo"); my_strings.insert("foo"); copy( my_strings.begin(), my_strings.end(), ostream_iterator (cout, "\n")); }