Форум программистов, компьютерный форум CyberForum.ru

Vector не до конца понял Конструктор копирования - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Error C2039: 'Sth' : is not a member of 'std::vector<_Ty>' http://www.cyberforum.ru/cpp-beginners/thread1844377.html
#include <iostream> #include <vector> using std::cin; using std::cout; using std::endl; using namespace std; struct MyVectorClientsType { char Letter; vector<int> MyVectorQueue;
C++ SMTP С++ отправка сообщения на почту Ребят, такая задача. Нужно отправить сообщение на почту. программа должна это делать в фотоном режиме, то есть логин и пароль указываются в коде. Я обшарил кучу тем. Толком ничего для решения своей задачи не нашёл. Не прошу написать это за меня, просто укажите направления поиска. Буду очень признателен)))) http://www.cyberforum.ru/cpp-beginners/thread1844373.html
C++ Для каждого значения A вывести все значения функции попдающие в интервал от C до D
Мне дали вот такое условие задачи: Y=f(x; a) X1<=x<=x2, x3 A1<=a<=a2, a3 Для каждого значения A вывести все значения функции попдающие в интервал от C до D. Надо решить в c++ . Пожалуйста помогите
C++ Правильное объявление переменной с точки зрения стиля [int *a vs int* a]
И всё таки, как корректней объявлять переменные? 1. int* a, int& a, int** a или 2. int *a, int &a, int **a ?
C++ В заданном массиве целых чисел найти числа, оканчивающиеся на указанные цифры http://www.cyberforum.ru/cpp-beginners/thread1844363.html
Дан статистический одномерный массив целых чисел. Найти числа оканчивающиеся на 1 и на 0, n-дано(вводим с клавиатуры)
C++ Применение цикла if для определения простых чисел. If внутри цикла for Доброго времени суток, подскажите пожалуйста, в чем тут дело. С кодом все хорошо, все работает, просто я пытаюсь докопаться до сути и почему-то не "обмозговывается". Недавно начал учить с++, учу по книге Лафоре. Работаю в codeblock. И так вот код и далее вопрос: (сначала приведу два примера а сам вопрос будет в третьем примере) #include <iostream> using namespace std; #include <stdlib.h>... подробнее

Показать сообщение отдельно
Kant
 Аватар для Kant
24 / 24 / 8
Регистрация: 15.05.2013
Сообщений: 213
07.11.2016, 22:07     Vector не до конца понял Конструктор копирования
Тебе тут надо многое переписать.

1. Прочитай идиому copy-and-swap
Надо переписать конструктор копирования, оператор присвоения.

2. Удели внимание Add, Insert, Remove. Ты там совершаешь одну и туже ошибку.

Кликните здесь для просмотра всего текста

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void Vector::Add(const int& item)
{
    int * vect2 = new int[size];
    for (int i = 0; i < size; i++)
        vect2[i] = vect[i];
    delete []vect;
    size++;
 
    // вот это лишние
    //vect = new int[size];
    //for (int i = 0; i<size - 1; i++)
    //{
    //    vect[i] = vect2[i];
    //}
    //vect[size - 1] = item;
    //delete[] vect2;
 
   // просто переставь указатель
   vect2[size] = item;
   vect = vect2;
}


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

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Vector Vector::operator+(const Vector &v) {
  int passSize = 0;
  if (this->size > v.size) {
    passSize = v.size;
  } else if (this->size < v.size) {
    passSize = this->size;
  } else {
    passSize = this->size;
  }
 
  for (int i = 0; i < passSize; i++) {
    this->vect[i] += v[i];
  }
 
  return *this;
}


4. using namesace std в хедерах не исп.


Еще много разных мелочей. Допустим оператор индексирования:

C++
1
2
3
    // v.vect[i]
   // а надо
   v[i]

Это не все, но начало хорошее Напиши тесты под свой Вектор, так тебе будет проще вносить изменения.
 
Текущее время: 07:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru