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

класс для массива - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Строки | Отредактируйте заданное предложение, удаляя из него все слова с чётными номерами. http://www.cyberforum.ru/cpp-beginners/thread218276.html
Отредактируйте заданное предложение, удаляя из него все слова с чётными номерами. Что-то накалякал, но пахать не хочет :( #include "stdafx.h" #include <stdio.h> #include <iostream> void main() { char s; int i,j,n; printf("Enter string: ");
C++ srand что значит строка? srand((unsigned)time(NULL); http://www.cyberforum.ru/cpp-beginners/thread218275.html
В матрице "а" заменить местами первый отрицательный элемент первой строки и последний диагональный C++
Написал часть, генерацию чисел. А как сортировать и заменить понять не могу. #include <iostream.h> #include <stdlib.h> #include <math.h> #include <time.h> #include <conio.h> // directivi int main() {
C++ GetWindowsDirectory
Код: #include <windows.h> #include <iostream> using namespace std; int main(int argc, char* argv) { char windir; cout << GetWindowsDirectory(windir,sizeof(windir));
C++ Побайтово сравнить 2 файла и вернуть количество байтов, не имеющих сходства. http://www.cyberforum.ru/cpp-beginners/thread218268.html
Помогите дополнить программу, не очень понимаю бинарные файлы #include <stdio.h> #include <stdlib.h> #include <windows.h> #include <iostream> using namespace std; int main()
C++ шифр Помогите пожалуйста написать программу на СИ, которая в введенном тексте заменить каждую букву на ту, что стоит следующей в алфавите(как бы шифр). Написать функцию для шифрования и де шифрования текста .Спасибо подробнее

Показать сообщение отдельно
lemegeton
 Аватар для lemegeton
2908 / 1337 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
23.12.2010, 01:35     класс для массива
Не понятно, что вам надо. Пишите грамотней. У меня завалялся вот такой простенький. Пойдет?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
/*
  написать класс для массива с проверкой границ
  должны быть проверки на выход за пределы массива +операции +удаления,
  +добавления, +доступа и +копирования, +инциализации
  и ещё если возможно, написать тесты для этого класса
*/
 
#include <cstddef>
#include <cassert>
#include <cstdio>
 
class Vector {
 public:
  Vector() : size_(0), data_(NULL) {}
  explicit Vector(size_t size) : size_(size), data_(new int[size]) {}
  ~Vector() {
  }
 
  int& At(const size_t &position) const {
    assert(position < size_ && position >= 0);
    return data_[position];
  }
 
  void Clear() {
    if (data_ != NULL) {
      delete [] data_;
      data_ = NULL;
      size_ = 0;
    }
  }
 
  void CopyTo(Vector& other) {
    other.Clear();
    for (size_t i = 0; i < size_; ++i)
      other.PushBack(At(i));
  }
 
  void CopyFrom(const Vector& other) {
    Clear();
    for (size_t i = 0; i < other.Size(); ++i)
      PushBack(other.At(i));
  }
 
  void Erase(size_t position) {
    assert(position < size_ && position >= 0 && size_ > 0);
    size_t new_size = size_ - 1;
    if (new_size == 0) {
      delete [] data_;
      data_ = NULL;
    } else {
      int *new_data = new int[new_size];
      for (size_t i = 0; i < position; ++i)
        new_data[i] = data_[i];
      for (size_t i = position+1; i < new_size; ++i)
        new_data[i] = data_[i+1];
      delete [] data_;
      data_ = new_data;
      size_ = new_size;
    }
  }
 
  void Insert(size_t position, int value) {
    size_t new_size = size_+1;
    assert(position < new_size && position >= 0);
    int *new_data = new int[new_size];
    for (size_t i = 0; i < position; ++i)
      new_data[i] = data_[i];
    new_data[position] = value;
    for (size_t i = position+1; i < new_size; ++i)
      new_data[i] = data_[i-1];
    if (data_ != NULL)
      delete [] data_;
    data_ = new_data;
    size_ = new_size;
  }
 
  void PushBack(int value) {
    Insert(size_, value);
  }
 
  inline size_t Size() const { return size_; }
 
  int& operator[](const size_t &position) {
    assert(position < size_ && position >= 0);
    return data_[position];
  }
 
 private:
  size_t size_;
  int *data_;
};
 
int main(int argc, char* argv[]) {
  Vector test_vector, second_vector;
  for (int i = 0; i < 10; ++i)
    test_vector.Insert(0, i);
  for (int i = 0; i < 10; ++i)
    test_vector.PushBack(i);
  test_vector.Erase((test_vector.Size()-1)/2);
  second_vector.CopyFrom(test_vector);
  second_vector.CopyTo(test_vector);
 
  for (size_t i = 0; i < test_vector.Size(); ++i)
    printf("%d ", test_vector[i]);
  printf("\n");
  
  int exit_key;
  scanf("%d", &exit_key);
  return 0;
}
 
Текущее время: 02:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru