58 / 62 / 34
Регистрация: 14.03.2014
Сообщений: 856
1

Обращение к элементу массива

29.05.2016, 21:59. Показов 19369. Ответов 13
Метки нет (Все метки)

Как мне обратиться к последнему элементу массива?
например:
C++
1
2
3
Array[i-1] // i = 0 тут нужно что бы -1 был последним т.е N-1
//можно ли с помощью ссылочных переменных как то сделать, например так:
int &Array = Array[N-1]
//т.е когда я обращаюсь к Array[-1] я обращался к Array[N-1]
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.05.2016, 21:59
Ответы с готовыми решениями:

Что быстрее? Обращение к элементу массива или к элементу структуры?
Обращение к элементу массива или к элементу структуры? Экспериментирую с кодом и получается...

Обращение к элементу массива
Объясните пожалуйста, что происходит в строке помеченной *** void main(){ char str; char...

Обращение к элементу массива из строк
Здравствуйте! Имеется такой код: string mesiaci = //Massiv iz strok { "Ianvar'",...

Обращение к элементу массива через адрес
#include "a.h" #include <iostream> #include<stdio.h> using namespace std; void vvod(float...

13
Заблокирован
29.05.2016, 22:02 2
Если Array - это указатель, то нужно знать заранее кол-во элементов в массиве. Иначе никак не обратишься.
0
58 / 62 / 34
Регистрация: 14.03.2014
Сообщений: 856
29.05.2016, 22:03  [ТС] 3
Оно будет известно к тому времени:
C++
1
2
3
4
5
6
7
8
9
int N, sum = 0;
    vector<int>MyVector;
    cin >> N;
    MyVector.resize(N);
    for (int i = 0; i < N; i++)
    {
        cin >> MyVector[i];
        sum = MyVector[i] + sum;
    }
0
Заблокирован
29.05.2016, 22:11 4
В чем тогда вопрос? Если в массиве Array N элементов, то последний Array[N-1].
0
58 / 62 / 34
Регистрация: 14.03.2014
Сообщений: 856
29.05.2016, 22:19  [ТС] 5
У меня даны числа. Нужно перебрать всевозможные тройки: Допустим числа такие 4531 значит тройки такие 453 531 314 145. Тут наоборот Nый элемент должен стать нулевым а N+1 первым. Но сути не меняет. Как это сделать
0
Заблокирован
29.05.2016, 22:21 6
std::swap
1
58 / 62 / 34
Регистрация: 14.03.2014
Сообщений: 856
29.05.2016, 22:23  [ТС] 7
точно. Спс.
А так допустим прокатит:
C++
1
Array[-1] = Array[N-1];
перед тем как я буду обращаться к -1
0
Заблокирован
29.05.2016, 22:23 8
Нет.
0
Эксперт С++
8720 / 4300 / 958
Регистрация: 15.11.2014
Сообщений: 9,744
29.05.2016, 22:24 9
Цитата Сообщение от Senarist Посмотреть сообщение
Как мне обратиться к последнему элементу массива?
C++
1
2
3
const auto& index= sizeof(arr)/sizeof(arr[0])-1;
 
auto& value = arr[ index];
0
Заблокирован
29.05.2016, 22:25 10
Цитата Сообщение от hoggy Посмотреть сообщение
sizeof(arr)
Если arr - указатель, то тут будет фигня, а не размер массива в байтах.
0
58 / 62 / 34
Регистрация: 14.03.2014
Сообщений: 856
29.05.2016, 22:26  [ТС] 11
Ок. Тогда swap то что надо.
0
Эксперт С++
8720 / 4300 / 958
Регистрация: 15.11.2014
Сообщений: 9,744
29.05.2016, 22:38 12
Цитата Сообщение от nimazzzy Посмотреть сообщение
Если arr - указатель

тогда это противоречит исходной постановке задачи:

Цитата Сообщение от Senarist Посмотреть сообщение
Как мне обратиться к последнему элементу массива?

нет никаких "если".
обращение есть к массиву, а не к указателю.
баста.
0
Заблокирован
29.05.2016, 23:07 13
Цитата Сообщение от hoggy Посмотреть сообщение
тогда это противоречит исходной постановке задачи:
Нет, не противоречит.
Цитата Сообщение от hoggy Посмотреть сообщение
нет никаких "если".
Еще как "если".
Цитата Сообщение от hoggy Посмотреть сообщение
обращение есть к массиву, а не к указателю.
Так как кода объявления Array нет, твой код приведет к ошибке в простейшем же сценарии с *Array.
0
Эксперт С++
8720 / 4300 / 958
Регистрация: 15.11.2014
Сообщений: 9,744
30.05.2016, 01:19 14
Цитата Сообщение от nimazzzy Посмотреть сообщение
Нет, не противоречит.
нет противоречит.

поскольку тип данных "указатель" и "массив" пренципиально различаются.
если вы это не осознаете, то вам нужно подучить с++
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.05.2016, 01:19
Помогаю со студенческими работами здесь

Обращение к элементу массива через указатель
Здравствуйте, точно помню, что A и *(A+i) это одно и тоже то вот почему-то не хочет работать...

Организовать обращение к элементу массива в классе
Есть класс: class Graf { public: double **M; double MT; Graf(){}; ~Graf(){}; Graf(int n){

Обращение к элементу динамического массива структур
Само задание: http://cs412722.vk.me/v412722398/4e77/fUkq93u2HDE.jpg пока написал только это:...

Обращение ко второму элементу массива указателей на строки
Добрый день. Не получается обратиться ко второму элементу: #include &lt;stdio.h&gt; int main(void) {...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru