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

clas Char_vec - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ C++ http://www.cyberforum.ru/cpp-beginners/thread363048.html
Здравствуйте!:curtsy: Помогите пожалуйста с задачами.:gsmile: 1. Программа вводит с клавиатуры массив действительных чисел до тех пор, пока пользователь не введет "0"(нуль). Данный массив упорядочивается по возрастанию. 2.В одномерном массиве из 10 элементов размещены : в пером - число месяца, во втором - соответствующее ему значение температуры. Напечатать на экране элементы этого массива...
C++ не могу разобраться с процедурой ввода и вывода программа рабочая подскажите плиз Разработать схему алгоритма и программу, используя функции с параметрами для ввода массива и его обработки. В массиве хранятся данные об осадках за месяц. Найти • Количество дней с осадками больше среднего вот по этому заданию написали такой код мне, вот сам пытался его полностью понять но кое какие моменты не могу понять посмотрите плиз кто в языке лучше понимает и подскажите, я комменты... http://www.cyberforum.ru/cpp-beginners/thread363047.html
Извлечение корня, длинная арифметика C++
По заданному натуральному числу А требуется найти наибольшее число В такое, что B^2 <= A. вот набросал, но прога работает медленно. как ее можно оптимизировать или подскажите более быстрый способ. #include <fstream> #include <string> #include <deque> using namespace std; int sravnenie(deque<int>& a,deque<int>& b) {
C++ Найти "средний" по величине делитель числа
Надо найти "средний" по величине делитель числа х.Использовать прибавление 1 = + - х :-целочисленное деление и %-остаток от деления. 3.3 Запрещено создавать темы с бессмысленными названиями вроде "Помогите!", "Вопрос" и т.п
C++ странная последовательность http://www.cyberforum.ru/cpp-beginners/thread363025.html
Во входном файле записана последовательность чисел в странном формате: у каждого числа сначала записано количество цифр в этом числе, а потом через пробел - сами цифры. Последовательность заканчивается числом 0. В выходной файл нужно вывести сначала количество чисел в последовательности, а потом - сами числа. Количество чисел в последовательности не превышает 1000. В числах - не более 4-х...
C++ Линейные Односвязные Списки С++ Разработать и реализовать программу создания и обработки линейного односвязного списка с одним информационным полем, которое содержит целое число. Программа должна содержать меню с перечнем возможностей работы со списком и выбора соответствующего пункта меню с обращением к функции, реализующей выбранное действие над списком: (меню сама сделаю..мне бы те программки которые ниже..а то я совсем... подробнее

Показать сообщение отдельно
Gepar
 Аватар для Gepar
1175 / 531 / 20
Регистрация: 01.07.2009
Сообщений: 3,512
08.10.2011, 14:53     clas Char_vec
Решаю тут задачки Страуструпа и наткнулся на вот такую:
Код
Рассмотрим: 
class Char vec 
{ 
int sz; 
char element [ 1 ] ; 
public: 
static Char_vec* new char vec {int s) ; 
char& operator [] (int i) { return element [i] ; } 
}; 

Определите new char vec (), выделяющую непрерывную память для Char vec 
таким образом, чтобы доступ к элементам мог осуществляться по индексу  
через element. При каких обстоятельствах этот трюк может вызвать серьезные 
проблемы?
Но что-то я не понял как же её решать, ведь у нас фиксированный размер element изначально, а Страуструп хочет чтобы мы потом могли к i элементу обращаться, можно бы было использовать realoc, но ведь element это не указатель и новый адрес ему не присвоить ... в общем пишите Ваши варианты, моежет кто уже решал эту задачку
Я немного модифицировал класс и у меня получилось такое
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
#include <iostream>
using namespace std;
 
class Char_vec
{
    int sz;
    char *element;
 
public:
        Char_vec(int size):sz(size){element=new char[sz];}
        static Char_vec* new_char_vec (int s);
        char& operator[] (int i){return element[i];}
};
 
Char_vec* Char_vec::new_char_vec (int s)
{
    Char_vec *temp=new Char_vec(s);
    return temp;
}
 
int main()
{
    Char_vec test(2);
    Char_vec *test2;
    test2=test.new_char_vec(10);
    (*test2)[9]='X';
    cout<<(*test2)[9];
 
}
Но не думаю что это то что хотел Страуструп ...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 10:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru