|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.04.2013, 09:46 | #1 |
Пользователь
Регистрация: 24.11.2009
Сообщений: 54
|
Простой вопрос STL
Пришлось мне написать одну программу на этом языке звёздочек и амперсандов.. Возникла проблема, вынес её в отдельный код - повторилась, ура.
Задача - положить N строк из строки ch (она изменяется в процессе) в вектор, а потом положить их по одной в ch и что-то с ними делать. В моём коде получается, что я кладу в массив не строки, а указатели на них, следовательно, при изменении ch меняется весь вектор. И при вводе --> qwer qwerty qw вывод будет таким <-- qw qw qw Как изменить код? И сделайте на сколько можно проще, пожалуйста. Вот код: Код:
141.116.168.135 : damiu2d449028.dami.army.pentagon.mi l (.MIL | US Military)
Последний раз редактировалось AnKor94; 03.04.2013 в 10:08. Причина: изменил код чтоб было понятнее для чего он. всё равно ничего не работает. |
03.04.2013, 10:33 | #2 | |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Цитата:
|
|
03.04.2013, 10:45 | #3 |
Пользователь
Регистрация: 24.11.2009
Сообщений: 54
|
Ну да, так я уже попробовал, но.. Чтобы сохранить массив символов нужно преобразовать его в стринг, а чтобы достать - обратно? Какой-то троллейбус из булки хлеба.
141.116.168.135 : damiu2d449028.dami.army.pentagon.mi l (.MIL | US Military)
|
03.04.2013, 10:53 | #4 | |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Цитата:
Нет, можете делать всё то, что делает за Вас std::string, самостоятельно - выделять новую память, копировать в неё строку и класть указатель на неё в вектор; потом при уничтожении вектора не забыть её освободить. Просто std::string - это класс, специально предназначенный, чтобы заниматься всем этим за Вас. |
|
03.04.2013, 10:58 | #5 |
Пользователь
Регистрация: 24.11.2009
Сообщений: 54
|
В программе использую библиотеку muParser, которая принимает на вход си-строку. Данные беру с клавиатуры pocketbook'a, библиотека libInkView, которая возвращает тоже си-строку. Так что использовать std::string бессмысленно.
141.116.168.135 : damiu2d449028.dami.army.pentagon.mi l (.MIL | US Military)
|
03.04.2013, 11:06 | #6 | |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Цитата:
Разумеется, вольному - воля: Код:
|
|
03.04.2013, 12:44 | #7 |
Пользователь
Регистрация: 24.11.2009
Сообщений: 54
|
Спасибо, всё понял. Ух, от с++ аж руки трясутся.
offtop: вспомнился Керниган, : «Си — инструмент, острый, как бритва: с его помощью можно создать и элегантную программу, и кровавое месиво».
141.116.168.135 : damiu2d449028.dami.army.pentagon.mi l (.MIL | US Military)
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Простой вопрос | Ins1De | C++ Builder | 5 | 10.02.2012 22:32 |
Класс vector и сложносоставные массивы. вопрос к спецам в STL | haruhi | Общие вопросы C/C++ | 1 | 19.11.2011 16:32 |
Вопрос о функциональном объекте less в stl | Познающий | Помощь студентам | 0 | 01.06.2009 11:14 |
простой вопрос | Анастасия123456789 | Помощь студентам | 2 | 10.03.2009 09:23 |