Реализация функций empty и clear для вектора

226
27 декабря 2017, 21:10

Правильно я сделала функции?

  template<typename T>
  bool Vector<T>::Empty() const
  {
     return (mSize == mCapacity);
  }
  template<typename T>
  void Vector<T>::Clear()
   {
      mVector[mSize].~T();
      mSize = 0;
   }

Переделала

 template<typename T>
 void Vector<T>::Clear()
 {
    for (decltype(mSize) i = 0; i < mSize; ++i)
       mVector[i].~T();
    mSize = 0;
 }
Answer 1

Нет.

Пустой - это когда в нем нет элементов. т.е.

return mSize==0;

Ну, а очистка... Опять же, зависит от того, как именно у вас реализовано удаление и добавление элементов. Но по сути это - pop_back(), выполненное mSize раз. Исходите из этого.

READ ALSO
Кракозябры сообщений компилятора в QtCreator

Кракозябры сообщений компилятора в QtCreator

При использовании компилятора Microsoft в Qt-проекте в окне сборки выводятся сообщения об ошибках и предупреждениях с поломанной кодировкойНапример:

280
Реализация reserve для вектора

Реализация reserve для вектора

Правильно я сделала функцию?

212
Умножение матрицы на вектор. C++ [требует правки]

Умножение матрицы на вектор. C++ [требует правки]

Создал класс матрица и класс векторКак реализовать функцию умножения друг на друга их?

385