|
542 / 447 / 162
Регистрация: 10.12.2009
Сообщений: 1,857
|
|
Стандарты и стили языков программирования01.01.2011, 15:16. Показов 7017. Ответов 41
Метки нет (Все метки)
Занимаясь программирование, например С++, иногда задумываешься, читая различную литературу и разбирая чужие коды программ, что большинство программистов, как начинающих, так и уже вполне опытных, смешивают два разных языка С и С++ (одним языком их никак не назовешь, даже в самом начале изучения). Причем и в университетах (имею ввиду свой) существует дисциплина ЯП С/C++, в которых с самого начала обучения студентов учат программировать на этих двух языках вместе, типа "выбери сам, что ты хочешь". Ведь это не есть хорошо... Получается "адская смесь" - это уже начало раздражать. Да и на форуме, процентов 80%, таких людей хватает... Даже можно привести пример, когда чел на форуме пишет какой-нить код на Си, он выделяет его как код Си++. Потом начинаешь читать, и как-то не хорошо становится - и это самая мелочь!!! =)
Как Вы относитесь к такой проблеме?!
2
|
|
| 01.01.2011, 15:16 | |
|
Ответы с готовыми решениями:
41
Стандарты и регламенты программирования в Lotus 4 и 5 поколения языков программирования |
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|||||||||||
| 04.01.2011, 16:42 | |||||||||||
|
accept, Насчет вставки. То есть это неудобно? Вставка тут - только две строчки.
0
|
|||||||||||
|
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
||||||||||||||||||
| 06.01.2011, 07:55 | ||||||||||||||||||
или сначала задать размер строки
а в векторе тем более 2 чтобы он память не занимал когда работаешь с байтами, он не нужен push_back, покажи push_back для заголовка бинарного файла 3 чтобы вывести вектор
а это вообще не одно и тоже, что
4 я имел в виду поместить-то можно, только смысла в этом нет, так как методы string завязаны на нуль-символ с обычными массивами нет этих ограничений, что хочешь, то и помещай туда здесь коллизии
и это ещё кратенько написано
0
|
||||||||||||||||||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|||||||||||||||||||
| 06.01.2011, 15:18 | |||||||||||||||||||
|
accept, Задать или использовать push_back.
Добавлено через 42 секунды
0
|
|||||||||||||||||||
|
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
|
||||||
| 06.01.2011, 21:47 | ||||||
![]()
0
|
||||||
|
|
||
| 06.01.2011, 22:35 | ||
|
Не вижу проблемы в перемешивании Си и Си++ до тех пор, пока это не выходит на уровень маразма, типа того, что в половине кода используется malloc/free, а в другой половине - new/delete. Хотя в данной теме речь идёт в первую очередь о перемешивании библиотек стандартной поддержки, а не о использовании языка
Вот пример конструкции, который в принципе не пишется на "чистом Си++" https://www.cyberforum.ru/post857620.html. Другой пример - realloc (авторы Си++ как-то не подумали о подобной конструкции). Добавлено через 23 минуты Вот ещё. При перемешивании кодов на Си и Си++ нужно помнить, что есть конструкции, которые по разному трактуются в Си и Си++ https://www.cyberforum.ru/post889495.html https://www.cyberforum.ru/post889587.html
2
|
||
|
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
|||||||||||||||||||
| 07.01.2011, 05:01 | |||||||||||||||||||
string
что находится в s и как оно хранится в памяти ? если обращаться к элементам в s по индексам, то индексы будут по-порядку, но индексы - это не память
как он хранится в памяти ? слитно ? он не должен слитно храниться, это ещё строка может быть там хранится слитно, хотя тоже не факт, что при увеличении она не будет в виде фрагментов, а вектор, там вроде можно ещё промежутки оставлять, удаляя элементы
0
|
|||||||||||||||||||
|
Заблокирован
|
|||||
| 07.01.2011, 05:11 | |||||
|
0
|
|||||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||||||||||||||||||||||||||||
| 07.01.2011, 05:23 | ||||||||||||||||||||||||||||||||
|
accept, 1) Чтобы в ней не хранилось по данному коду - мы этого не увидим... Зачем писать неверную (в данном случае зацикленную) программу в попытке что-то доказать? Тем более в string ведь можно поместить не бесконечное кол-во символов (как бэ тип size_t у размера контейнера намекает).
2) А зачем к вектору применять memove? Это совершенно другая ступень работы. С обычным массивом - мы работаем с памятью. С вектором - мы работаем с итераторами, которые в данном случае есть удобная обертка указателей. + мы работаем с функциями-членами вроде reserve/push_back/resize etc. Так какой смысл применять к нему memove? + отрывок функции которая используется при реализации вектора.
Впринципе в векторе (и в остальных контейнерах) даже нет напрямую работы с памятью в реализации. Ведь как распределитель используется аллокатор (что есть тоже обертка для более удобного распределения памяти, чего в массивах нету). А теперь - полная иерархия реализации конструктора копирования для вектора.
Добавлено через 5 минут accept,
2
|
||||||||||||||||||||||||||||||||
|
Заблокирован
|
|||||||
| 07.01.2011, 05:24 | |||||||
0
|
|||||||
|
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
|||
| 07.01.2011, 06:07 | |||
memove() создаёт буфер, чтобы перекрывающиеся фрагменты правильно копировались, и всё _CRT_SECURE_MEMMOVE то есть к вектору применяется memove(), из чего следует, что он хранится слитно хранится ли он слитно во всех компиляторах ?
0
|
|||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 07.01.2011, 13:55 | |
|
accept, Ну это нужно помсмотреть стандарт... Но я думаю либо это гарантировано либо все зависит от разработчиков
Добавлено через 13 минут Вообщем в стандарте про вектор есть. Страница 482 http://www.kuzbass.ru/docs/ans... 2_1998.pdf Но вот то, что он хранится в памяти подряд - гарантируют итераторы я так понимаю. Иначе невозможно было бы переместить итератор с одного элемент на другой (все же итератор в векторе - обертка над указателем).
0
|
|
| 07.01.2011, 14:10 | |
|
0
|
|
|
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
|||
| 07.01.2011, 14:25 | |||
|
C89 memmove
там есть ещё memcpy(), вот она для неперекрывающихся
когда из вектора нужно удалить элементы не с начала и не с конца, memmove() там явно не применима, даже если вектор хранит элементы слитно, потому что нужно менять переменные, отвечающие за его длину и так далее Не по теме:
0
|
|||
| 07.01.2011, 14:32 | |
Сообщение было отмечено как решение
РешениеНе по теме: accept, вот один из вариантов реализации memmove: http://www.student.cs.uwaterlo... ource.html
4
|
|
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||||||||||||||||||||||||||||||||
| 08.01.2011, 00:04 | ||||||||||||||||||||||||||||||||||||
|
accept, Надо просто посмотреть на реализацию erase. Когда я сам писал вектор - я удалял элементы через
Добавлено через 5 часов 34 минуты Вот erase векторовский.
0
|
||||||||||||||||||||||||||||||||||||
|
|
||
| 08.01.2011, 00:23 | ||
|
Все, что гарантирует стандарт так это последовательное хранение элементов, как в обычном массиве, следовательно обращаться к элементам можно, как к элементам массива. Но это не значит, что можно тасовать области памяти, как душе угодно. По поводу споров о векторах и массивах, мое мнение такое, там где можно использовать массив статического размера, пусть будут именно такие массивы, где требуется динамическое распределение памяти, лучше использовать вектор.
0
|
||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 08.01.2011, 00:25 | |
|
fasked, memmove используется в самом векторе. см. выше.
0
|
|
| 08.01.2011, 08:39 | ||
|
Не по теме:
нигде в нете ссылки на американцев не видно
0
|
||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 08.01.2011, 14:02 | |
|
accept, э. Стандарт С++ набери в яндексе/гугле
Первая же ссылка - ссыль на форум - первое же сообщение ссыль на стандарт
0
|
|
| 08.01.2011, 14:02 | |
|
Разработка языков программирования Сравнение Языков Программирования Сколько языков программирования в кс 1.6 ? Семантика языков программирования Теория языков программирования Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
|
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения:
- добавлена многоязычность
- добавлено снятие скриншотов
- добавлено поддержание бафов хождения по воде (для жреца, дк и шамана)
- и так, по. . .
|
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу)))
Критические ошибки, мешающие компиляции и. . .
|
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата)
Этот документ предназначен для того, чтобы новый чат Claude мог продолжить
работу без необходимости заново разбираться в. . .
|
|
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса
Калибровка параметров симбиотической модели: технический обзор
Содержание:
Введение
Постановка проблемы
Технические аспекты реализации
Процесс внедрения изменений
|
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0»
https:/ / ibb. co/ NnkGpfMd
Представленная интегрированная схема описывает непрерывную нелинейную. . .
|
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы
### Аннотация
Представлено исследование по разработке агентной модели микоризной. . .
|
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики
Контекст
Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
|