当前位置:  开发笔记 > 编程语言 > 正文

如何避免字符串数组中的重复输入?

如何解决《如何避免字符串数组中的重复输入?》经验,为你挑选了1个好方法。

在我的小项目中,我想制作一个小程序,我必须存储无限制的唯一字符串,但用户可以多次输入相同的唯一字符串.但是在我的数组中,我只希望只保存一次唯一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"));
}

推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有