class FileObject
{
public:
set<string> owners;
.
.
.
};
в этой функции у меня проблема с этой строкой: for (std :: set it = owner.begin(); it! = owner.end(); it++).
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>' не выведены из 'const __gnu_cxx :: __ normal_iterator <_IteratorL, _Container>' - no 'operator++ (int)', объявленный для postfix '++' [-fpermissive ] - 'std :: set>' не выводится из 'const std :: _ Rb_tree <_Key, _Val, _KeyOfValue, _Compare, _Alloc>' - 'std :: set>' не выводится из 'const std :: vector < _Tp, _Alloc> '-' std :: set> 'не выводится из' const std :: _ Rb_tree_iterator <_Tp> '-' std :: set> 'не выводится из' const std :: list <_Tp, _Alloc> '-' std :: set> 'не выводится из' const std :: _ List_iterator <_Tp> '-' std :: set> 'не выводится из' const __gnu_cxx :: __ normal_iterator <_Iterator, _Container> '-' std :: set> 'не выводится из' const __gnu_cxx :: new_allocator <_Tp> '-' std :: set> 'не выводится из' const std :: multiset <_Key, _Compare, _Alloc> '-' std :: set> 'не выводится из' const std :: istream_iterator <_Tp, _CharT, _Traits, _Dist> '-' std :: set> :: iterator {aka std :: _ Rb_tree_const_iterator>} 'не выводится из' const std:: набор <_key, _Compare, _Alloc> '-' std :: set> 'не выводится из' const std :: reverse_iterator <_Iterator> '-' std :: set> 'не выводится из' const std :: pair <_T1, _T2> '-' std :: set> 'не выводится из' const std :: fpos <_StateT> '- кандидаты: - преобразование из' std :: set> :: iterator {aka std :: _ Rb_tree_const_iterator>} 'в non -scalar type 'std :: set>' required - нет соответствия для 'operator! =' (типы операндов: 'std :: set>' и 'std :: set> :: iterator {aka std :: _ Rb_tree_const_iterator>}' ) - 'std :: set>' не выводится из 'const std :: istreambuf_iterator <_CharT, _Traits>' - несогласованные типы 'const _CharT *' и 'std :: set>' - 'std :: set>' это не выводится из 'const std :: basic_string <_CharT, _Traits, _Alloc>' - 'std :: set>' не выводится из 'const std :: allocator <_CharT>'
Тип it
должен быть set<string>::const_iterator
или set<string>::iterator
, не set<string>
.
Если вы используете С++ 11, вы можете просто использовать auto
. :-)
Кроме того, в качестве стиля предпочитайте возвращать ваше messageToPrint
по значению, а не использовать параметр out.