![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
maksimla |
![]()
Сообщение
#1
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 324 Пол: Мужской Реальное имя: maksim Репутация: ![]() ![]() ![]() |
У меня в программке ошибка спотыкаюсь на mas[j-1]="privet";
Надо написать программку чтобы динамическая массив постоянно увеличивался на 1 и записывался в ячейку сразу данные а у меня чего то не выходит наверное неправильно рассчитал вот сама программка #include <stdafx.h> -------------------- Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
|
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Вообще-то для того, что ты написал, предназначен std::vector:
vector<string> mas; , и не надо ничего никуда копировать. |
maksimla |
![]()
Сообщение
#3
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 324 Пол: Мужской Реальное имя: maksim Репутация: ![]() ![]() ![]() |
Я знаю что вектор предназначен для этого но сказали сделать без вектора чтобы меньше ресурсов кушала
-------------------- Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
|
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Ну, тогда все понятно...
Кто тебе сказал, что вектор - это много ресурсов? Вообще-то это все очень хорошо оптимизировано, и превзойти стандартные алгоритмы/структуры тебе вряд-ли удастся. И по скорости и по ресурсам. Тем более, когда ты работаешь с классом std::string - лучше предоставить это вектору, чем химичить что-либо самому. Но дело твое: хочешь велосипед - делай... |
maksimla |
![]()
Сообщение
#5
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 324 Пол: Мужской Реальное имя: maksim Репутация: ![]() ![]() ![]() |
Мне задали сделать программку чтобы с файла брала только слова и считала сколько каких слов повторяется сделал с вектором
Одна ошибка там пустое место записывает Сказали переделать вместо вектора сделать динамический массив чтобы меньше памяти использовала исправить ошибку и оптимизировать программу ну я сделал вот так
и теперь хотел избавится от одного цикла for (i=0;i<s;i++) -------------------- Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
|
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Цитата Сказали переделать вместо вектора сделать динамический массив чтобы меньше памяти использовала Чтоб программа использовала меньше памяти - надо не описывать массивы так:#define max 10000, а использовать для хранения строк те же векторы, или еще лучше - map какой-нибудь. Не надо делать смесь чистого С и С++, ни к чему хорошему это не приводит. Если уж пишешь программу на С++ - так используй его библиотеки. |
maksimla |
![]()
Сообщение
#7
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 324 Пол: Мужской Реальное имя: maksim Репутация: ![]() ![]() ![]() |
Ого а я думал что С не знаю так как его не проходил а о map я первый раз слышу
Добавлено через 7 мин. А ведь в паскале можно увеличивать динамический масив -------------------- Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
|
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
Если интересно - вот решение задачи (если я правильно понял, тебе надо разбить текст файла на слова, удаляя все "ненужные" символы, и посчитать, сколько раз каждое слово встречалось?)
#include <iostream>Ну, и скажи мне, какой код предпочтительнее? ![]() Цитата А ведь в паскале можно увеличивать динамический масив Некоторые компиляторы Паскаля вообще ничего про динамические массивы не знают. |
TarasBer |
![]()
Сообщение
#9
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
Не понял, зачем вручную копировать старый массив на новый, есть же оператор realloc (если так не хочется стандартные алгоритмы брать).
-------------------- |
volvo |
![]()
Сообщение
#10
|
Гость ![]() |
realloc - это С-стиль. При работе с POD-типами все ясно и понятно. Но при работе с классами (а у автора здесь именно классы используются, std::string например) можно такого наворотить, что не разгребешь потом.
Получается, надо писать обертку над realloc-ом, которая будет работать с классами корректно. И придумывать свой std::vector. Оно надо? |
TarasBer |
![]()
Сообщение
#11
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ну дык не надо использовать классы, если руками с памятью работаешь.
Если сказали руками - значит руками, никаких std::string, только char*. -------------------- |
![]() ![]() |
![]() |
Текстовая версия | 27.07.2025 11:31 |