172 похожих чатов

То есть clone в данном случае делает лишнюю работу?

15 ответов

7 просмотров

Да

У тебя вектор (а не массив кстати) освобождается после завершения функции. То есть ты создаёшь клон вектора, а потом оригинальный вектор дропаешь и возвращаешь клон. Двойная работа.

Dmitry-Klimov Автор вопроса
Алексей
У тебя вектор (а не массив кстати) освобождается п...

Если common - вектор уничтожается при завершении работы функции, то как возвращаемый объект этого верктора не потеряет значения в куче?

Dmitry Klimov
Если common - вектор уничтожается при завершении р...

если ты его вернёшь, именно его, а не его клон, то он не уничтожится

Dmitry Klimov
Если common - вектор уничтожается при завершении р...

.clone() у вектора выделяет новый буфер в куче и по очереди клонирует туда каждый элемент исходного вектора

Dmitry Klimov
хм, занятное поведение.

если ты создашь клон, то будет тоже самое поведение без дропа, но уже для клона, а оригинал дропнется

Dmitry Klimov
хм, занятное поведение.

Обычная семантика перемещения, в расте она по умолчанию

Mikail Bagishov
.clone() у вектора выделяет новый буфер в куче и п...

Подожди, в любом случае по очереди? Даже если элемент имплементирует Copy?

Mikail Bagishov
Пойду чекну, нет ли там специализации

Воодушевляет // N.B., see the `hack` module in this file for more details.

Emmanuel Goldstein
Воодушевляет // N.B., see the `hack` module in thi...

Там такого много. Я очень радовался когда читал

Emmanuel Goldstein
Воодушевляет // N.B., see the `hack` module in thi...

Ну короче специализации не вижу. Но наверное для LLVM там все очень просто.

Mikail Bagishov
Ну короче специализации не вижу. Но наверное для L...

Кажется, это идёт через SpecExtend и падает вот сюда https://github.com/rust-lang/rust/blob/master/library/alloc/src/vec.rs#L1268

Похожие вопросы

Обсуждают сегодня

А чем вам питонисты не угодили?😂
.
79
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
32
Hello. Could you please help me with finding all coordinates within a radius using a spatial index, given that I have a table with coordinates? SET @lng = 37.57925; SET @lat ...
Rinchin G
7
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Всех приветствую. Направьте меня в нужное русло. Постепенно переписываю проект с delphi на lazarus. Приложение - обычный windows/linux клиент для бд firebird. Тут все хорошо. ...
Mishutka
8
Привет всем, подскажите, есть сайт на ево 1.4, надо сделать его мультиязычным, структура документов одинаковой останется, чисто тексты разные, свои тв для каждого языка, поддо...
Oleg
7
@rouse_79 https://github.com/AlexanderBagel/FWZip/blob/8c6882a31ffaa9a23e66e22eaa5b1f7ebfcad43c/zlib_external.pas#L393 Почему Си-шная функция memset, параметр отвечающий за з...
notme
8
{"fieldValue":[ {"title":"Alkmaar","coords":"52.62689992095562, 4.771862510168792","address":"Edisonweg 1","zip":"1821 BN","city":"Alkmaar","description":"ma-vr: 07:00-17:00"...
Marc Hoogstrate
4
А что ты ставишь? Релиз или текущую версию?
Aliaksandr Sadouski
9
Карта сайта