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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
vaselo
19 / 19 / 1
Регистрация: 17.10.2010
Сообщений: 247
#1

Левостороннее значение - C++

26.04.2012, 19:02. Просмотров 1140. Ответов 2
Метки нет (Все метки)

Помогите! как писать в элемент при индексации?
в векторе - указатель. По нему создан массив.
в методе operator[](int index) возвращаю:
return vect[index/size_of_block][index%size_of_block]
но закомментированная строка вызывает ошибку левого операнда
как быть??

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
//
 
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <vector>
using namespace std;
 
template <class Type> class mas
{
    vector <Type*> vect;
    unsigned int size_of_block;
    unsigned int size;
public:
mas()
    {
        size_of_block=50;
        size=50;
        Type*p=new Type[size_of_block];
        vect.push_back(p);
    }
mas(unsigned int _size)
    {
        size_of_block=_size;
        size=size_of_block;
        Type* p=new Type[size_of_block];
        vect.push_back(p);
    }
Type operator[](int index)
{
    if(index<size)
    {
 
        return vect[index/size_of_block][index%size_of_block];//делим нацело - получаем номер блока - указатель, а теперь надо взять элемент массива, созданного по этому указателю
    }
}
 
};
void main()
{
    mas <int> mass;
    //mass[32]=10;
    cout<<mass[32];
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.04.2012, 19:02     Левостороннее значение
Посмотрите здесь:

error C2105: для "++" требуется левостороннее значение - C++
Как правильно записать инкремент для указателя на void? Все варианты перепробовал и ничего не помогает int arr = {1, 2, 3, 4, 5}; ...

Вывести на экран значение t при котором функция x(t) принимает максимальное значение - C++
Объясните, как решить с помощью массива. Только начал изучать C++. Знаю, как вывести максимальный из массива. Но как сделать чтобы в этот...

Вычислить среднеарифметическое значение элементов массива и определить минимальное положительное значение - C++
Необходимо сформировать двумерный массив A(3x9), используя генератор случайных чисел на интервале (-4, 4). Далее преобразовать массив А в...

Определить, является ли введенное значение года високосным, если введено корректное значение - C++
Определить, является ли введенное значение года високосным, если введено корректное значение.

Ввести с клавиатуры вещественное (double) значение x, вывести соответствующее значение y для функции y = f(x) - C++
Всем привет! Нужна помощь в решение данной задач... Буду очень признателен :) График функции y = f(x) задан точками, соединенными...

Вывести начальные индексы всех елементов массива, значение которых превышает заданое значение А. - C++
Масив целых чисел(розмеры 100) заполнить случайными значениями(диапазон значений от -100 до 100).Вывести начальные индексы всех елементов...

Переполнение знаковых целых чисел: почему значение переменной обнуляется, а не записывается младшее значение? - C++
что то не пойму, как происходит переполнение знаковых целых чисел вот #include &lt;iostream&gt; int main(int argc, char* argv) { ...

Замена всех элементов массива, значение которых превышает среднее значение, максимальным элементом - C++
Написать функцию для замены всех элементов массива значение которых превышает среднее значение максимального и минимального элемента...

Для данного вещественного х найти значение следущей функции f, принимающей значение целого типа: - C++
0, если х&lt;0, f(x) = 1, если принадлежит[0,1),[2,3),..., -1, если х принадлежит [1,2),[3,4), ... .

Вычислить значение у, где. Значение переменной х введите с клавиатуры - C++
Вычислить значение у, где. Значение переменной х введите с клавиатуры.

Найти значение t, при котором значение функции максимально - C++
Момент времени t, в который будет достигнута максимальная скорость точки, если уравнение движения точки дано в виде: x=2*sin(pi/2*t+pi/4)о ...

В квадратной матрицы поменять местами столбик, содержащий наибольшее значение со столбиком, который содержит наименьшее значение - C++
1. В квадратной матрицы поменять местами столбик, содержащий наибольшее значение со столбиком, который содержит наименьшее значение. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Somebody
2786 / 1600 / 145
Регистрация: 03.12.2007
Сообщений: 4,189
Завершенные тесты: 1
26.04.2012, 19:28     Левостороннее значение #2
Возвращай ссылку:
C++
1
Type& operator[](int index)
vaselo
19 / 19 / 1
Регистрация: 17.10.2010
Сообщений: 247
26.04.2012, 19:35  [ТС]     Левостороннее значение #3
сказываются бессонные ночи: я этот амперсант уже к ретурну тулил во все места... материал первого курса... стыдно не знать...
точнее забыть!
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru