|
|
|
Пойду повешусь!!Через map
|
|||
|---|---|---|---|
|
#18+
Парни помогите сделать поиск по контейнеру через map. Уменя єсть процедура поиска но она чтото неработает.Помогите Вот текст програми: Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2006, 08:17 |
|
||
|
Пойду повешусь!!Через map
|
|||
|---|---|---|---|
|
#18+
1) какая ошибка? (выдается сообщение об ошибке? ищется не то что надо? или еще что-нибудь) 2) если есть std::map, то зачем делать такой самопальный поиск в нем, перебирая подряд все элементы, когда этот контейнер специально придуман для того чтобы быстро искать по индексу? 3) less<char*> можно было не писать, т.к. оно по умолчанию. НО это неправильно , т.к. при вставке элементов сравниваться будут не строки, а значения указателей. Из-за этого контейнер будет работать скорее всего не так, как от него ожидается. Правильнее было бы написать свой функтор сравнения строк (см. код ниже), а лучше вообще отказаться от char* в пользу std::string. Исходник не компилял (ибо что такое vcl? ). Вот набросал небольшой пример, чтобы показать, что я имел в виду в п.2 и п.3 Код: plaintext 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. Он вообще то тоже с ошибкой, да и вывод в последних строчках не случайно делается сначала для m2, а потом для m1, ибо по-другому не работает :) Но для иллюстрации сойдет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2006, 10:00 |
|
||
|
Пойду повешусь!!Через map
|
|||
|---|---|---|---|
|
#18+
Я хочу чтобы в контейнере искало заданное слово которое вводится из клавиатуры. Эта функция должна вытягивать данные из контейнера и выводить в Label3. Помогите организовать нормально поиск в контейнере!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2006, 13:48 |
|
||
|
Пойду повешусь!!Через map
|
|||
|---|---|---|---|
|
#18+
cruseЯ хочу чтобы в контейнере искало заданное слово которое вводится из клавиатуры. Эта функция должна вытягивать данные из контейнера и выводить в Label3. Помогите организовать нормально поиск в контейнере!! У контейнера std::map и так уже есть метод find. Поиск. Нормальнее некуда. Чем он не устраивает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2006, 14:09 |
|
||
|
Пойду повешусь!!Через map
|
|||
|---|---|---|---|
|
#18+
может ему нужно ближайшее значение? тогда нужно на upper_bound смотреть... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2006, 14:15 |
|
||
|
Пойду повешусь!!Через map
|
|||
|---|---|---|---|
|
#18+
cruseЯ хочу чтобы в контейнере искало заданное слово которое вводится из клавиатуры. Эта функция должна вытягивать данные из контейнера и выводить в Label3. Помогите организовать нормально поиск в контейнере!! Кстати, у меня ощущение, что мой первый ответ оставлен без внимания, а зря :) Повторяю вопросы: 1) почему ключ (и значения) в контейнере имеют тип char*? Понимаю так веселей секс с отдадчиком и выяснением причин "отчего не работает", но... 2) см. п.1 почему не перейти на map<string, string> ? 3) зачем в ассоциативном контейнере для того чтобы найти нужный элемент выполняется последовательный перебор всех значений? Когда у map есть оператор доступа по индексу [] и метод find, которые делают все что надо. Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2006, 14:24 |
|
||
|
Пойду повешусь!!Через map
|
|||
|---|---|---|---|
|
#18+
Поиск в map Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2006, 14:26 |
|
||
|
Пойду повешусь!!Через map
|
|||
|---|---|---|---|
|
#18+
Извените пожалуста!! А как вивести дание в Label3! Form1->Label3->Caption="РЕЙС"+((*i1).first);-не работает может скинете пример для вивода в какой небудь компонент!! Как вивести результат поиска если использовать typedef map<string, string> TMap!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2006, 15:07 |
|
||
|
Пойду повешусь!!Через map
|
|||
|---|---|---|---|
|
#18+
Почему поиск неработает!! Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2006, 23:28 |
|
||
|
Пойду повешусь!!Через map
|
|||
|---|---|---|---|
|
#18+
cruseПочему поиск неработает!! Приехали туристы в Иерусалим,приходят к Стене Плача,им все рассказывают,показывают,а потом говорят: Посмотрите,вон человек уже 15 лет,каждый день приходит сюда и молится,молится,разговаривает с Богом.Они изумились,подходят к этому человеку и спрашивают: Скажите,а Вы действительно все 15 лет сюда приходите - Да, И каждый день разговариваете с Богом - Да, Ну и какие у вас ощущения? -А как будто со стенкой разговариваю (на всякий случай и во избежание - это анекдот!) Пардон не удержался, но действительно возникает ощущение, что вы не читаете ответы :-/ Код: plaintext 1. Два раза я спрашивал - зачем в качестве ключей и значений (хотя со значениями в данном случае непринципиально) в контейнере используется char*? Вы понимаете, что вы делаете? Как устроен map, для чего он нужен и вообще? В таком map у вас ключ - это значение указателя. Адрес. Число грубо говоря. Смотрим исходник дальше: Код: plaintext 1. Два массива строк, в который будут читаться, как я понял, какие-то названия (рейсы?) и какое-то соответствие для них. Ок. А потом: Код: plaintext 1. Что тут сделано? Прочитали в эти строки что-то из файла и потом запихнули в map два числа - указатель на одну строку rs[ i ] и на другую строку vs[ i ]. Теперь у нас в контейнере N пар указатель-указатель, адреса соотв. строк элеметнов этих массивов. Что делается дальше: Код: plaintext 1. 2. 3. 4. 5. Опс. Мы объявили еще один массив: str[80]. Его адрес (адрес первого эл-та массива) вряд-ли будет совпадать с rs[0] или rs[1] или ... rs[N], согласны? А именно эти значения у нас лежат в map и именно среди них будет происходить поиск. Есть еще вопросы почему ничего не находится? Как сделать правильно, я уже писал два раза. Либо написать свой функтор сравнения строк, либо перейти на std::string, либо... что-нибудь еще :) dixi ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2006, 19:45 |
|
||
|
Пойду повешусь!!Через map
|
|||
|---|---|---|---|
|
#18+
cruse Как вивести результат поиска если использовать typedef map<string, string> TMap!!!! Если вы, как видно, по предыдущему коду, умеете выводить char*, то у std::string есть метод c_str, возвращающий как раз char*. Найти это в документации заняло бы меньше времени, чем вопрос на форум писать, честное слово (только написать, про ожидание ответа я уж молчу)... Нет, ответить не сложно, ничего такого, но ваше время оно ведь ваши деньги. Не жалко? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2006, 22:55 |
|
||
|
Пойду повешусь!!Через map
|
|||
|---|---|---|---|
|
#18+
redskinдокументации заняло бы меньше времени, чем вопрос на форум писать, честное слово (только написать, про ожидание ответа я уж молчу)... Нет, ответить не сложно, ничего такого, но ваше время оно ведь ваши деньги. Вообще-то выводить можно и const char *, и не нужно тогда дорогого c_str(). Встречный кстате вопрос: своих денег и времени не жалго ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2006, 11:10 |
|
||
|
Пойду повешусь!!Через map
|
|||
|---|---|---|---|
|
#18+
MasterZiv Встречный кстате вопрос: своих денег и времени не жалго ? Я то этим занимаюсь в свободное время (дома или с работы в coffee-break). Каждый развлекается по-своему :) А тут товарищ ждет ответа, без которого как понимаю дело у него не движется или движется гораздо медленнее, чем если бы посмотреть в книжку или в msdn пошарить. Вот что имел в виду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2006, 11:27 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=33739978&tid=2031208]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 260ms |
| total: | 398ms |

| 0 / 0 |
