Форум программистов, компьютерный форум CyberForum.ru

Хеш-таблицы: string subscript out of range - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Двумерный массив. Определить номер первого из столбцов, содержащих хотя бы один нулевой элемент. http://www.cyberforum.ru/cpp-beginners/thread705944.html
Дано целочисленная прямоугольная матрица. Определить номер первого из столбцов, содержащих хотя бы один нулевой элемент. Характеристикой строки целочисленной матрицы назовем сумму ее отрицательное парных элементов. Переставляя строки заданной матрицы, расположить их в соответствии со убыванию характеристик. Пожалуйста помогите!! Спасибо...
C++ Вычислить точную сумму ряда Всем привет!!! Нужна помощь в дописание программы. Суть такова: Нужно вычислить точную сумму ряда. Результат представить в виде обыкновенной дроби. Числовой ряд вида 1+1/n1+1/n2..., где n1,n2...натуральные числа. #include <stdio.h> #include <string.h> char s,c,B; int pos,n,A,np; void start() { printf ("Введите выражение s="); http://www.cyberforum.ru/cpp-beginners/thread705935.html
перевести код из паскаля в С++ C++
program Terri; uses crt; const m=100; // Максимальный размер массива var mg:array of byte; // Матрица смежности stack:array of word; // Стек i,j:word; column,row:word; sp:word; // номер последнего элемента в стеке vs,vf:word;
C++ Запись текста в файл
Доброго времени суток. У меня есть такой код программы: #include <iostream> #include <fstream> #include <iomanip> #include <string> #include <clocale> using namespace std; struct clients { char imya;
C++ Замена символов в строке http://www.cyberforum.ru/cpp-beginners/thread705903.html
Надо написать программу, которая будет считывать строку, и заменять определенный символ(пользователь сам указывает, какой именно) на другой (который тоже указывает пользователь). Вот код: #include <iostream> using namespace std; int replace(char * str,char c1,char c2); int main() { char *wail="rubiroid"; char ch1,ch2; cout<<"Vvedite symbol, kotoriy nugno zamenit': ";
C++ Составить программу, которая инвертирует строку, подавая его в обратном виде; С клавиатуры вводится строка. Составить программу, которая инвертирует строку, подавая его в обратном виде; подсчитывает количество чисел в тексте; удаляет все слова, начинающиеся с гласных букв. подробнее

Показать сообщение отдельно
Silvestr1994
27 / 27 / 1
Регистрация: 26.10.2012
Сообщений: 101

Хеш-таблицы: string subscript out of range - C++

22.11.2012, 21:45. Просмотров 896. Ответов 2
Метки (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#include <iostream>
#include <string.h>
#include <string>
using namespace std;
 
typedef string nametype;
struct celltype 
{
  nametype element;
  celltype* next;
};
const int DICT_SIZE = 15;
typedef celltype* DICTIONARY[DICT_SIZE];
 
int Hash(nametype);
void PRINT(DICTIONARY);
bool MEMBER(nametype, DICTIONARY &);
void INSERT(nametype, DICTIONARY &);
void MAKENULL(DICTIONARY &);
void DELETE(nametype, DICTIONARY &);
 
int main()
{
  DICTIONARY D;
  string strings[DICT_SIZE] = {"Willis","DeNiro","Tarantino","AlPacino","Statham","Butler","Sandler","Portman","Cage","Hanks","Freeman","Banderos","Stalone","VanDam","Pitt"};
  MAKENULL(D);
  for (int i = 0; i < DICT_SIZE; i++) 
  {
    INSERT(strings[i], D);
  }
  PRINT(D);
  DELETE("Banderos", D);
  PRINT(D);
  return 0;
}
 
int Hash(nametype x)
{
  int sum = 0;
  for (unsigned int i = 0; i < sizeof(x); i++)
  {
    sum += (int) x[i];
  }
  return  sum % (DICT_SIZE);
}
 
void PRINT(DICTIONARY A)
{
  celltype* current;
  for (int i = 0; i < DICT_SIZE; i++) 
  {
    cout<<endl<<"["<<i<<"]";
    current = A[i];
    while (current != NULL) 
    {
      cout<<current->element<<" ";
      current = current->next;
    }
  }
  cout<<endl;
}
 
bool MEMBER(nametype x, DICTIONARY &A)
{
  celltype* current;
  current = A[Hash(x)];
  while (current != NULL) 
  {
    if (current->element == x)
      return true;
    else 
      current = current->next;
  }
  return false;
}
 
void INSERT(nametype x, DICTIONARY &A)
{
  int bucket;
  celltype* oldHeader;
  if (!MEMBER(x, A))
  {
    bucket = Hash(x);
    oldHeader = A[bucket];
    A[bucket] = new celltype;
    A[bucket]->element = x;
    A[bucket]->next = oldHeader;
  }
}
 
void MAKENULL(DICTIONARY &A)
{
  for (int i = 0; i < DICT_SIZE; i++) 
  {
    A[i] = NULL;
  }
}
 
void DELETE(nametype x, DICTIONARY &A)
{
  int bucket;
  celltype* current;
  bucket = Hash(x);
  if (A[bucket] != NULL)
  {
    if (A[bucket]->element == x) 
    {
      A[bucket] = A[bucket]->next;
    }
    else 
    {
      current = A[bucket];
      while (current->next != NULL) 
      {
        if (current->next->element == x) 
        {
          current->next = current->next->next;
          break;
        }
        else 
        {
          current = current->next;
        }
      }
    }
  }
}
Добавлено через 11 минут
Лаба по Хеш-таблицам

Добавлено через 28 минут
Ребят помогите
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 18:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru