divyang4481 / mipt-hw

Automatically exported from code.google.com/p/mipt-hw
0 stars 0 forks source link

task1_TVector #185

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
pavlov_evgeniy/task1_tvector

Original issue reported on code.google.com by evgeny.p...@phystech.edu on 10 Mar 2013 at 7:19

GoogleCodeExporter commented 9 years ago
0. Warnings:
main.cpp: In member function ‘T TVector<T>::pop_back() [with T = char]’:
main.cpp:55: warning: control reaches end of non-void function

1. Данные в public. А как же инкапсуляция?

2. Методы size, empty, capacity, front, back, operator[] 
невозможно вызвать у константного объекта.

3. Конструкция вида v.front() = 5  - не 
компилируется.

4. Конструкцию типа такой:
  if(Size) return 0;                                                                   
  else return 1;
можно упростить:
  return Size == 0;

5. Прошу не использовать 1 и 0 для булевых 
операций. В С++ для этого есть тип bool и 
соответствующие зарезервированные 
константные true и false.

6. В swap Вы создаете временный объект vector. Для 
этого требуется O(n) по памяти и по времени. 
Требуется сложность O(1) по памяти и по 
времени. Иначе такой метод вообще не нужен: 
можно воспользоваться встроенной функцией 
swap.

7. Не вижу тестов на утечки памяти. 

Решение не принято.

Original comment by aivyu...@gmail.com on 18 Mar 2013 at 8:41