Igor
цсс уже много лет как тьюринг полный ... все в сад ! ;)
Igor
Igor
Vyacheslav
Иван
Так, ребят, давайте так чтобы я тоже понимал вас
Иван
Vyacheslav
Mikoratanakaki
Не устаю удивляться продуманности телеграмма, лучший мессенджер эвер
Иван
Так там же всё работает. Стартую в g++ - работает. В clang++ работает. в IDE работает. На литкоде - нет
A.
Sergey
Vyacheslav
Oleksii
Когда пишешь на C++ добавляешь много библиотек?
Просто используйте #include<bits/stdc ++.h>.
Это подключение всех библиотек
Oleksii
Jsx707
Jsx707
У вас так потом один лишь Hello world.cpp будет компилироваться вечность
Jsx707
Если вы знаете как работает препроцессор , то вы вероятно понимаете почему это плохое решение, потому что у каждого из хедеров есть свой код , который просто скопируется в ту единицу компиляции , которая компилируется в данный момент и у каждого из этих хедеров не мало строчек кода , особенно директив для условной компиляции и это ооочень долго .... Плюс эти хедеры подключают ещё и другие хедеры
Jsx707
Поэтому подключать нужно , только нужные библиотеки
Oleksii
а, так оно прям все возможные библиотеки подключит или только те, что использу.тся??
Мир
Тут про Джаву спрашивать можно?)
Oleksii
Jsx707
Более того , это плохое решение ещё потому что .... Когда вашу программу будут собирать на других операционных системах , там ещё будут и другие компиляторы и там этих заголовочных файлов может просто не быть , будут ошибки
Oleksii
Jsx707
Скорее всего стандартный набор
Jsx707
Хотя можно сделать аналог
Jsx707
#if
#include <conio.h>
#else
std :: cout<<"You haven't required header ! Please, install all requirements!"<<std :: endl;
Jsx707
Типа того , хотя вполне возможно , что я что-то спутал
Jsx707
Ибо я не кодил уже месяц-два)
Jsx707
Но по-моему как-то так , ибо это условная компиляция , если не подключается этот заголовочный файл ,выводится соответствующее сообщение
Jsx707
Хотя здесь она используется не совсем правильно
Igor
Так я не понимаю почему только с единицей так
Берешь любое значение отличное от 1 и все работает....
вы хотите сделать вот такое
void rotate(vector<int>& nums, int k) {
if(k == 0)
return;
k %= nums.size();
int size = nums.size();
auto nums_copy = nums;
auto it = nums_copy.end() -= k;
nums.insert(nums.begin(), it, nums_copy.end());
nums.resize(size);
}
то что написанно у вас работает по недоразумению.
по стандарту все итераторы после места вставки являются не валидными ... ваши итераторы все после вставки находятся
Igor
https://cplusplus.com/reference/vector/vector/insert/
Because vectors use an array as their underlying storage, inserting elements in positions other than the vector end causes the container to relocate all the elements that were after position to their new positions.
Igor
и дальше
Iterator validity
If a reallocation happens, all iterators, pointers and references related to the container are invalidated.
Otherwise, only those pointing to position and beyond are invalidated, with all iterators, pointers and references to elements before position guaranteed to keep referring to the same elements they were referring to before the call.
Иван
Уже куча всего в голове. Сохраню, а завтра уже разберусь. Спасибо
Igor
темболее если ты меняешь его размер ты ничего не теряешь просто сделав копию.
Иван
Не хотелось делать различные копии
Igor
Не хотелось делать различные копии
ты всеравно почти всегда перевыделяешь память когда меняешь размер вектора. задание было про инплейс изменения на сколько я понял и то что ты изобразил это "не совсем то что от тебя требовалось"
Oleksii
Jsx707
Обработчик исключений
В C++ его нету, там есть switch - case разве что , но в случае с подключением библиотек он не подойдёт
Oleksii
Igor
и покажу как сломать локально
Иван
Jsx707
https://highload.today/throw-try-i-catch-v-c/
Кстати , реально , я совсем забыл про них ..... Прошу прощения , реально забыл 😂.
Попробуй , но не знаю , надо ли оно , скорее всего тот хедер , который ты хотела использовать , подключает самые базовые библиотеки
Jsx707
Которые есть везде , но лучше перестраховаться
Jsx707
И не использовать его
Oleksii
вот например в шарпе, но новым стандартам, создается файл со всеми импортами и уже из него идут все импорты во все файлы. фича спорная по производтельности
Igor
Да, было бы отлично
смотри ты локально создаешь вектор как нибудь так
vector<int> a = {1,2,3};
и у него
cout<<a.capacity();
объем выделенный равен ровно 3
они же делают что то типа
vector<int> a;
a.push_back(1);
a.push_back(2);
a.push_back(3);
когда читают данные из файла.
и у них капасити не равен 3.
поэтому когда ты первый раз делаешь инсерт ты создаешь копию ... и работаешь с ней ... а итератор it бегает по старому массиву
у них же копия не создается и индексы "плывут"
Igor
Да, было бы отлично
чтобы сломать локальный код просто сделай что то типа
vector<int> a = {1,2,3};
a.reserve(10);
Jsx707
И там будут уже проблемы ибо будет очень много функций с одинаковым именем и ТД и будут ошибки
Jsx707
Можно обойти используя что-то типа #pragma once
Jsx707
Но это .... Конечно это спорно
Иван
Igor
Ыыы пришла жена дала по шапке ;) пришлось делать тентакли для девочек ;)
Bogdan
Bogdan
правда глобальные импорты это так себе идея:D
Oleksii
Erik
Igor
Igor
не получается сделать норм пульсацию ;(
Oleksii
Igor
куча вложенных дивов и цсс
Oleksii
аааа
Вячеслав
Господа, как правильно указать тайпхин в классметоде, указывающий на то, что из этого метода возвращается лист инстанций класса?
Вячеслав
Или это что-то бесполезное?
Вячеслав
class Station:
def __init__(self, location: Dict[str, str], area_phone_numbers: Tuple[tuple], ip_address: str):
self.location = location
self.area_phone_numbers = area_phone_numbers
self.ip_address = ip_address
@classmethod
def inst_station(cls):
with open('area_phone_numbers.csv', mode='r') as phones:
reader = csv.reader(phones, delimiter=';')
station_list = []
for num_line, line in enumerate(reader):
if num_line != 0:
station_list.append(cls(*line))
return station_list
Вячеслав
Если ставлю у этого метода -> List[Station] он ругается
Вячеслав
Ron
енто, сорри, не увидел, что ты уже написал сверху, спасибо ^^
Igor
Igor
от капасити зависит