当前位置: 首页 > 知识库问答 >
问题:

集合迭代器上的多个标记

周学义
2023-03-14
class FileObject
{
public:
set<string> owners;
.
.
.
};

在这个函数中,我对这一行有问题:for(std::set it=owners.begin();它!=业主。结束();它)。

void FileObject::viewFileDetails(string* messageToPrint)
{
    *messageToPrint = fileName;
    *messageToPrint += ", ";
    if(status == 0)
    {
        *messageToPrint += convertInt(countVersion);
    }
    else
    {
        *messageToPrint += userCheckedOut;
    }
    *messageToPrint += " (owners: ";
    unsigned int i=0;

    for(std::set<string> it = owners.begin(); it != owners.end(); it++)
    {
        *messageToPrint += *it;
        if( i != owners.size())
        {
            *messageToPrint += ", ";
        }
        else
        {
            *messageToPrint += ")";
        }
        i++;
    }

}

这是错误:

这行有多个标记--“std::set

共有1个答案

司马渝
2023-03-14

it的类型应设置为set

如果你使用的是C 11,你可以直接使用auto:-)

此外,作为样式问题,最好按值返回消息Toprint,而不是使用out参数

 类似资料:
  • 嗨,伙计们,我把这个作为面试问题来回答,但我遇到了麻烦。我熟悉泛型/集合 问题是:所提供的工作区中包含cocI,它是一个类的开始,该类实现了一个迭代器,可用于迭代集合集合。集合集合被传递到类的构造函数中。迭代器应该首先遍历内容深度。 例如,如果集合集合如下所示: 然后迭代器应按以下顺序返回内容:“A”、“B”、“C”、“D”、“E”、“F” Q.在cocI中提供hasNext()和next()方法

  • 问题内容: 在Java中为集合的集合设计一个迭代器。迭代器应隐藏嵌套,使您可以迭代属于所有集合的所有元素,就像使用单个集合一样 问题答案: 这是一个可能的实现。请注意,我没有执行remove():

  • 问题 你想在多个对象执行相同的操作,但是这些对象在不同的容器中,你希望代码在不失可读性的情况下避免写重复的循环。 解决方案 itertools.chain() 方法可以用来简化这个任务。 它接受一个可迭代对象列表作为输入,并返回一个迭代器,有效的屏蔽掉在多个容器中迭代细节。 为了演示清楚,考虑下面这个例子: >>> from itertools import chain >>> a = [1, 2

  • 假设我有一个包含集合的对象,所述集合上的每个元素都包含一个集合,每个集合都包含一个集合。 我想在最深的对象上迭代,并对其应用相同的代码。 命令式的方法是微不足道的,但有没有一种方法来完成这一切? 我可以看到如何从最深的循环中生成lambda: 但我能做得更多吗?

  • Iterator(迭代器)是一个接口,它的作用就是遍历容器的所有元素,也是 Java 集合框架的成员,但它与 Collection 和 Map 系列的集合不一样,Collection 和 Map 系列集合主要用于盛装其他对象,而 Iterator 则主要用于遍历(即迭代访问)Collection 集合中的元素。 Iterator 接口隐藏了各种 Collection 实现类的底层细节,向应用程序提

  • 我有一个包含私有可变数据列表的类。 我需要在以下条件下公开列表项: 列表不应在外部可修改; 对于使用 getter 函数的开发人员来说,应该很清楚,他们获得的列表不能被修改。 哪个getter函数应该标记为推荐方法?或者您能提供更好的解决方案吗? UPD:这个问题来自关于列表getter实现的最佳实践的真正代码审查讨论