|
|
|
std vector, хочу динамический массив структур :)
|
|||
|---|---|---|---|
|
#18+
Надоело пионерское программирование, учебная программа вузов как-то криво продумана, что мы после того как выучили стандартные типы, переходим к извращениям вроде собственноручной реализации ассоциативного массива (без std::map), ну итп пошлостям, короче не подпускают в плотную к прелестям стд :) Ну начинать никогда не рано, считаю я.. поэтому сильно не пинайте за ламерские вопросы :) 1) Хочу динамич. массив структур Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Ну я понимаю что я не прав v[0] = tmp; а как правильно? Смотрел примеры, как-то через класс, в котором или умный конструктор мутят или перегружают присваивание.. Но нельзя ли как-то проще, обыкновенной структурой например? Я ж так понял вектору всёравно какой тип данных хранить? 2) Ну есть векторный массив vector <a*> v(10); Как изменить его размер, не создавая новый, т.е. без копирования элементов... Нельзя ли как-то автоматически изменить размерность v? Заранее спасибо за объяснения :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2007, 00:39 |
|
||
|
std vector, хочу динамический массив структур :)
|
|||
|---|---|---|---|
|
#18+
RUSYA wrote: > продумана, что мы после того как выучили стандартные типы, переходим к > извращениям вроде собственноручной реализации ассоциативного массива (без > std::map), ну итп пошлостям, короче не подпускают в плотную к прелестям > стд :) Правильно делают, по-моему. Это базовые знания и без них вам будет ... не очень хорошо. :) > vector <a*> v(10); Не-а. Неправильно. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. > Ну я понимаю что я не прав v[0] = tmp; а как правильно? "vector <a> v(10);" > Я ж так понял вектору всёравно какой тип данных хранить? Вектору не "все равно, какой типа данных хранить", он шаблон, и в чистом виде не существует, типизируется при компиляции в конкретный класс под конкретный тип данных > 2) Ну есть векторный массив У вас справки встроенный по stl разве нету? Тогда вам сюда или сюда , например. > vector <a*> v(10); Это "динамический массив" указателей на структуру, не структур. > Как изменить его размер, не создавая новый, т.е. без копирования > элементов... resize() > Нельзя ли как-то автоматически изменить размерность v? push_back() , pop_back() - добавление/удаление элементов в конец вектора с изменением размера. рекомендую почитать тут . Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2007, 03:38 |
|
||
|
std vector, хочу динамический массив структур :)
|
|||
|---|---|---|---|
|
#18+
> struct a { > string name; > int years; > }; > > void main(){ > > vector <a*> v(*10*); Не храни структуры по указателю , храни самы структуры. Будет гораздо проще. Точнее, по указателю хранить в STL практически невозможно. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2007, 11:05 |
|
||
|
|

start [/forum/topic.php?fid=57&tid=2028735]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
169ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
25ms |
get tp. blocked users: |
1ms |
| others: | 216ms |
| total: | 445ms |

| 0 / 0 |
