|
542 / 447 / 162
Регистрация: 10.12.2009
Сообщений: 1,857
|
|
Стандарты и стили языков программирования01.01.2011, 15:16. Показов 6876. Ответов 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 / 3288 / 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 / 3288 / 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 / 3288 / 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 / 3288 / 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 | |
|
Помогаю со студенческими работами здесь
40
Разработка языков программирования Сравнение Языков Программирования Сколько языков программирования в кс 1.6 ? Семантика языков программирования Теория языков программирования Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|