- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
class SNMPRemoteAgentSet
{
protected :
std::vector<SNMPRemoteAgent*> _agents;
}
void SNMPRemoteAgentSet::clear() {
while((int)_agents.size()) {
delete _agents[0];
_agents.erase(_agents.begin());
}
}
SNMPRemoteAgentSet::~SNMPRemoteAgentSet() {
clear();
}
OBEH 01.10.2018 10:52 # −4
SuperCellSky 01.10.2018 11:03 # −3
666_N33D135 01.10.2018 11:04 # −3
Psionic 01.10.2018 14:46 # 0
SuperCellSky 01.10.2018 11:06 # −3
hidemynick 01.10.2018 15:23 # 0
ну правда думаю что все-таки лучше просто итератором от начала до конца пройтись удаляю каждый элемент
gost 01.10.2018 15:50 # 0
hidemynick 01.10.2018 15:53 # 0
Elvenfighter 01.10.2018 20:27 # 0
gost 01.10.2018 20:30 # 0
Elvenfighter 02.10.2018 15:48 # 0
https://godbolt.org/z/RFa0wg
Хотя формально -- да: кучу раз assignment
bormand 02.10.2018 16:00 # +1
gost 02.10.2018 16:08 # 0
При 1000 элементов получается вот такая прелесть:
http://quick-bench.com/R72b9076b0i9QncZzORh9Y25LU0
А при 10000 разница — три порядка.
Elvenfighter 02.10.2018 23:10 # 0
Не смотря на одинаковое O(n) memmove будет быстрее чем куча assignment (при условии что компилятор не заменит assignment на memmove)
roman-kashitsyn 01.10.2018 15:27 # +2
Elvenfighter 01.10.2018 20:29 # 0
bormand 01.10.2018 20:30 # 0
UPPERCASE 02.10.2018 16:00 # 0
bormand 02.10.2018 16:02 # +1
UPPERCASE 02.10.2018 16:10 # 0
Elvenfighter 02.10.2018 23:14 # 0
> расскажите человеку о std::unique_ptr<T, Deleter>.
> Делает всё тоже самое, только на за O(n^2)
Я скорее запутался тут, предполагая, что деструктор std::vector<std::unique_ptr> делает O(n^2) питушню
bormand 01.10.2018 15:59 # +1
Мало было граблей, хотелось ещё чего-нибудь для 64-битной платформы добавить?
SuperCellSky 01.10.2018 16:57 # −2
OBEH 01.10.2018 17:45 # +1
guest8 01.10.2018 20:55 # −999
bormand 01.10.2018 20:56 # +1
SuperCellSky 01.10.2018 20:58 # 0
bormand 01.10.2018 20:59 # 0
guest8 01.10.2018 21:17 # −999
bormand 01.10.2018 21:20 # +1
guest8 01.10.2018 21:26 # −999
guest8 01.10.2018 21:24 # −999
guest8 01.10.2018 21:26 # −999
guest8 01.10.2018 21:48 # −999
guest8 01.10.2018 21:49 # −999
guest8 01.10.2018 21:53 # −999
roman-kashitsyn 02.10.2018 00:55 # 0