Я не был уверен, о названии вопроса, но вот в чем проблема.Сохранение только нескольких изменений в структуре данных
У меня есть массив структур, теперь я передаю его ссылкой на функцию, где in, у меня есть очередь приоритета, из тех же структур.
Теперь я обрабатываю свой массив, используя очередь приоритетов, и в конце процесса у меня будет два атрибута (скажем A
и B
) моей структуры, в массиве изменено, в то время как я хотите, чтобы только одно из изменений (A
) отражалось вне функции, и я хочу, чтобы другое (B
) изменение было восстановлено, как это было до передачи массива. Я должен это сделать, потому что во второй раз, когда мне приходится обрабатывать один и тот же массив, но с разными параметрами, я хочу, чтобы изменения A оставались, а B - нет.
Что я делаю прямо сейчас, то после процесса, когда я вышел из функции, я обрабатываю весь массив и где когда-либо меняет значение для атрибута B
, я возвращаю его обратно к исходному значению. Теперь это, очевидно, операция O (n2), которая мне не подходит.
Могу ли я сделать что-то, чтобы сделать его более эффективным.
Я работаю с C.
Пропускает массив структур по значению, а не по ссылке. Пусть платформа DOT NET выполнит вашу работу. –
Когда вы говорите O (n2), вы имеете в виду n-квадрат или n-раз-два? –