IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> с++ динамического массива увеличение
сообщение
Сообщение #1


Знаток
****

Группа: Пользователи
Сообщений: 324
Пол: Мужской
Реальное имя: maksim

Репутация: -  1  +


У меня в программке ошибка спотыкаюсь на mas[j-1]="privet";
Надо написать программку чтобы динамическая массив постоянно увеличивался на 1 и записывался в ячейку сразу данные а у меня чего то не выходит наверное неправильно рассчитал

вот сама программка

#include <stdafx.h>
#include <string>
#include <iostream>
using namespace std;
int main()
{ cout<<"test"<<endl;
int i,j;
j=0;
string *mas,*ms;
for(i=0; i<50;i++)
{
j++;
if (j ==1) {
mas =new string [j]; mas[j-1]="0";
}
cout<<"j = "<<j<<endl;
if (j>1)
{
ms = new string [j-1];
ms=mas;
mas =new string [j];
mas=ms;
cout<<"mas ["<<j-2<<"] = "<<mas[j-2]<<endl;
mas[j-1]="privet";
//cout<<mas[j-1]<<endl;
}
}
cout<<"ppppppppppppp"<<endl;
//for (i=0; i<=j; i++)
cout<<"mas = "<<mas<<" i = "<<i<<" j = "<<j<<endl;
cout<<"end"<<endl;
return 0;
}



--------------------
Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Если интересно - вот решение задачи (если я правильно понял, тебе надо разбить текст файла на слова, удаляя все "ненужные" символы, и посчитать, сколько раз каждое слово встречалось?)

#include <iostream>
#include <fstream>
#include <iterator>
#include <vector>
#include <map>
#include <string>
#include <algorithm>
#include <functional>


struct is_sym: public std::unary_function<char, bool>
{
public:
// Это работает только с латинскими символами, но переделать
// на любые другие - не проблема, добавится еще пара строк...
bool operator ()(char ch) const
{
return !isalpha(ch);
}
};

int main()
{
std::string s;

typedef std::map<std::string, int> map_si;
map_si my_map;

std::ifstream in_file("mano.txt", std::ios::in);
while(in_file >> s)
{
s.erase(remove_if(s.begin(), s.end(), is_sym()), s.end());
if(s != "")
{
map_si::iterator pos = my_map.find(s);
if(pos != my_map.end())
{
pos->second += 1;
}
else
{
my_map.insert(map_si::value_type(s, 1));
}
}
}
in_file.close();

map_si::iterator pos;
// Это можно выводить не в cout, а в файл-результат...
for (pos = my_map.begin(); pos != my_map.end(); ++pos)
{

std::cout << "Word " << pos->first << " : " <<
pos->second << " time(s)" << std::endl;
}
return 0;
}
Ну, и скажи мне, какой код предпочтительнее? smile.gif

Цитата
А ведь в паскале можно увеличивать динамический масив
Некоторые компиляторы Паскаля вообще ничего про динамические массивы не знают.
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.04.2024 21:16
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name