Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Мизантроп_Лол
13 / 13 / 2
Регистрация: 26.02.2013
Сообщений: 285
Завершенные тесты: 1
#1

CodeBlocks ругается при использовании функции copy() - C++

27.03.2015, 02:30. Просмотров 379. Ответов 17
Метки нет (Все метки)

CodeBlocks почему-то ругается когда я использую функцию copy() в следующем контексте:
C++
1
2
3
4
5
6
num_part longAriph::getnum(string s)
{
...
    string tmp;
    copy(s.begin(), s.end(), tmp);
...
Без этой функции - всё нормально. При её использовании - закидывает меня в stl_algolbase.h и ругается на вот это:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  template<bool _IsMove, typename _II, typename _OI>
    inline _OI
    __copy_move_a(_II __first, _II __last, _OI __result)
    {
      typedef typename iterator_traits<_II>::value_type _ValueTypeI;
      typedef typename iterator_traits<_OI>::value_type _ValueTypeO;
      typedef typename iterator_traits<_II>::iterator_category _Category;
      const bool __simple = (__is_trivial(_ValueTypeI)
                         && __is_pointer<_II>::__value
                         && __is_pointer<_OI>::__value
                 && __are_same<_ValueTypeI, _ValueTypeO>::__value);
 
      return std::__copy_move<_IsMove, __simple,
                          _Category>::__copy_m(__first, __last, __result);
    }
Конкретнее, на 6-й и 11-й строках выдаёт:
e:\programs\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\stl_algobase.h|376|error: no type named 'value_type' in 'struct std::iterator_traits<std::basic_string<char> >'|

И вообще ругается, когда я в дебаггере проверяю переменную s и не показывает её значение. Говорит мол, программа получила сигнал SIGSEGV, Segmentation fault. И (во время какой-то из попыток) оно показало значения переменных s и tmp. Они оказались одинаковы, хотя я пробовал не инициализировать tmp, или инициализировать её при создании:
C++
1
string tmp("123")
всё равно она становилась равной переменной s.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.03.2015, 02:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос CodeBlocks ругается при использовании функции copy() (C++):

Почему Visual Studio 2015 ругается на функцию s.copy ? - C++
Уважаемые товарищи, помогите разобраться в чём проблема? Мне нужно просто из переменной типа string скопировать данные в информационное...

Ошибка при использовании дружественной функции - C++
Доброго времени суток! Не могу понять, в строках 17 и 20 пишет, что член hate, объявленный в строке 8 недоступен Подскажите, в чем...

Ошибка при использовании функции-члена - C++
Доброго времени суток! При использовании функции-члена print() с объектом класса bin_image , созданом конструктором по умолчанию...

Ошибки при использовании встроенной функции - C++
В классе имеется функция которая очень часто вызывается и поэтому было решено сделать ее встроенной, что бы ускорить работу программы. Но...

Ошибка при использовании vector в заголовке функции - C++
/home/motoroller/qtProjects/laba1/main.cpp:8: ошибка: 'std::vector' is not a type bool extract_class_head(string str, std::vector...

Ошибка времени выполнения при использовании функции scanf_s - C++
Есть код создания библиотеки книг, это его часть. Если потребуется могу скинуть весь код, но он без комментариев void...

17
hoggy
6767 / 2952 / 509
Регистрация: 15.11.2014
Сообщений: 6,653
Завершенные тесты: 1
27.03.2015, 18:24 #16
Цитата Сообщение от Мизантроп_Лол Посмотреть сообщение
качал полный набор с офф сайта вроде как)
это не важно.
важно понимать: что бы не показывал отладчик, но в точке,
где переменная ещё не существует, значение которое показывает отладчик не имеет смысла.

если вас интересует значение tmp, то рассматривайте его только в тех моментах,
когда она уже реально существует.
прочие моменты - игнорируйте.
0
DrOffset
7471 / 4467 / 1015
Регистрация: 30.01.2014
Сообщений: 7,321
27.03.2015, 18:45 #17
Цитата Сообщение от lss Посмотреть сообщение
DrOffset, у string нет такого конструктора.
Согласен, нет. Имелось в виду вот это:
C++
1
std::string tmp(str.size(), 0);
0
Мизантроп_Лол
13 / 13 / 2
Регистрация: 26.02.2013
Сообщений: 285
Завершенные тесты: 1
27.03.2015, 18:48  [ТС] #18
hoggy, ну это я понимаю. Я же писал ещё, что значения были странными и в других частях программы, уже после объявления. Впрочем, это уже не важно. Уже всё отлично)
0
27.03.2015, 18:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.03.2015, 18:48
Привет! Вот еще темы с ответами:

возникает ошибка при использовании массива, как параметр функции - C++
Добрый вечер. Помогите разобраться, пожалуйста. Задача: Проверьте, верно ли, что количество строк матрицы А(n*n), в которой все числа...

Почему при использовании функции scanf программа выдаёт ошибку? - C++
При использовании команды scanf программа выдаёт ошибку. Printf работает нормально. В чем может быть проблема? Среда разработки - Dev c++...

Оптимизирует ли компилятор код при использовании функции, возвращающей константу? - C++
Объясните мне компиляторы С++ оптимизируют такой код?. Да и вообще компиляторы оптимизуруют это? Я просто думал, что сохраняется адрес...

Почему портится поток cin при использовании функции getline - C++
char a; cin.getline(a,5); cin.clear(); При вводе свыше 5 символов после функции getline надо вызывать функцию clear() иначе...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.