Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.58/84: Рейтинг темы: голосов - 84, средняя оценка - 4.58
279 / 156 / 52
Регистрация: 30.06.2011
Сообщений: 1,712

Ссылка на вектор

15.09.2017, 09:55. Показов 16703. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую всех. Допустим, есть исходный вектор из 10 элементов. Можно ли создать ссылку типа vector на элементы с 5 по 10 в исходном векторе?
C++
1
2
3
std::vector <int> Src (10); // Исходный вектор
std::vector <int> & SrcRefBegin = Src; // Ссылка на весь массив
std::vector <int> & SrcRef5To10 = // Как получить ссылку, если возможно?
Добавлено через 17 часов 33 минуты
Есть уточнение. Ссылка на вектор будет константной (а если быть точным, будет ссылка на константу).
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.09.2017, 09:55
Ответы с готовыми решениями:

Ссылка(указатель) на вектор
Добрый день! Немного загнался по поводу вроде простого кода: int main(){ vector&lt;int&gt; vct; vector&lt;int&gt;&amp;...

Класс "вектор" с конструкторами, позволяющими создать нулевой вектор и вектор с произвольным числом элементов
Привет! Задача следующая. Нужно реализовать класс &quot;вектор&quot; с конструкторами, которые позволяют создать нулевой вектор и вектор с...

Если нет файла, но есть ссылка, то будет отображаться ссылка на указанную страницу...
Здравствуйте, понадобилась помощь в php)) В общем есть такой код: &lt;?php $file = get_field('file'); $title = $file; if(...

6
 Аватар для Maluda
1280 / 598 / 116
Регистрация: 18.08.2009
Сообщений: 832
15.09.2017, 16:40
Очень странный вопрос от человека, который судя даже по дате регистрации на сайте, как минимум 6 лет изучает С++. Как минимум, непонимание, что такое вектор, ссылки и массивы. Поэтому, как видишь, даже объяснять никто не хочет.
1
279 / 156 / 52
Регистрация: 30.06.2011
Сообщений: 1,712
18.09.2017, 09:59  [ТС]
Maluda, спасибо и за такой комментарий. Я понимаю, что ссылка - это другое имя объекта. Поэтому нельзя получить ссылку на часть какого-то объекта. Но ведь можно создать объект, который будет являться частью исходного объекта и получить ссылку на него. Знаю, что приведенное ниже будет названо говнокодом (или еще хуже), но может быть можно реализовать то же самое как-то по-другому, законными средствами?
C++
1
2
3
4
5
6
7
8
std::vector<int> Src(10);       // Исходный вектор
std::vector<int> Dst;           // Целевой вектор
 
Move(&Src, &Dst, sizeof(Src));  // Копирую данные исходного вектора в целевой
Dst[4] += sizeof(int) * 5;      // Меняю указатель начала вектора на 5 элемент
 
/* В результате вектор Dst "указывает" на те данные, которые хранятся в
   векторе Src с 5 элемента */
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
18.09.2017, 10:28
d7d1cd, Сколько книг по STL вы прочитали за "6 лет" ?
А сколько по С++ ?
Такое впечатления что ни одной...

Вам на это указали где найти ответ и в чем разобраться, но вы продолжаете сыпать глупыми вопросами.

Смысл помогать вам, если через несколько дней будет ровно такая я же тупая тема?

Добавлено через 20 минут
Вот пример для раздумий.

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
#include <iostream>
#include <array>
 
using namespace std;
 
template <typename T>
class RefArray
{
    public:
      RefArray(T* data,
              std::size_t offset,
              std::size_t size):
         m_data(data),
         m_offset(offset),
         m_size(size)
      {
      }
      
      std::size_t size()const{ return m_size; }
      std::size_t offset()const{ return m_offset; }
      
      T& operator[](std::size_t index)
      {
        return *(m_data+m_offset+index);
      }
      
      const T& operator[](std::size_t index)const
      {
        return *(m_data+m_offset+index);
      }  
      
      T* begin()
      {
         return m_data+m_offset;
      }
      
      T* end()
      {
          return  m_data+m_offset+m_size;
      }
      
    private:
      T* m_data;
      std::size_t m_offset;
      std::size_t m_size;
};
 
int main() 
{
    int a[10]={0,1,2,3,4,5,6,7,8,9};
    
    RefArray<int> ra(a,5,5);
    
    for(int e:ra)
       std::cout<<e<< std::endl;  
    
    return 0;
}
https://ideone.com/6zajVm
0
279 / 156 / 52
Регистрация: 30.06.2011
Сообщений: 1,712
18.09.2017, 11:40  [ТС]

Не по теме:

Avazart, у Вас негативное отношение только ко мне или ко всем, кто задает на форуме вопросы, в которых Вы разбираетесь? Я не работаю программистом, я не учился на программиста, моя специальность вообще не связана с компьютерами. Заниматься программированием, в том числе чтением книг по данному предмету, приходится в свободное время, которого катастрофически мало. Знакомых программистов у меня нет и форум остается последней надеждой на получение ответов. Однако вместо ответа получаешь затрещину от таких как Вы. И ладно бы после затрещины было объяснение, что сделано не так и объяснение как надо сделать (если это возможно). Но в ответ тебе говорят, что надо изучать С++ и STL, что и так понятно. Тогда для форума по С++ придуман всеобъемлющий ответ: "Учите С++"! И ничего больше объяснять не надо.



Изучил Ваш пример. Создан шаблон, на основе которого создается объект, который предоставляет доступ к заданной части имеющегося массива. Для решения моего вопроса необходимо использовать нечто подобное?
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
18.09.2017, 12:45
Цитата Сообщение от d7d1cd Посмотреть сообщение
у Вас негативное отношение только ко мне или ко всем, кто задает на форуме вопросы, в которых Вы разбираетесь?
А какое может быть отношение к лентяям и невеждам которые задают одни и те же тупые вопросы на форуме годы на пролет ничему так и не научившись?

Цитата Сообщение от d7d1cd Посмотреть сообщение
Я не работаю программистом, я не учился на программиста, моя специальность вообще не связана с компьютерами.
Это сугубо ваши проблемы, они никого не ...
Если вы умеете только жалется и ныть, лить слезы и требовать что вашу задачу решили другие за вас еще и объяснили так что бы вы поняли на вашем 0-уровне, может не стоит вообще лезть в программирование?

Цитата Сообщение от d7d1cd Посмотреть сообщение
Знакомых программистов у меня нет и форум остается последней надеждой на получение ответов.
А как же Страуструп, Саттер, Майерс, Липпман идр ... вам не знакомы не?

Цитата Сообщение от d7d1cd Посмотреть сообщение
И ладно бы после затрещины было объяснение,
В том то и проблема что нет смысла объяснять что либо человеку который после 6 лет на форуме полный 0, он ничего не поймет из объяснений.
Какие у него перспективы разобраться? Какая вероятность что он поможет потом тебе?

Цитата Сообщение от d7d1cd Посмотреть сообщение
Но в ответ тебе говорят, что надо изучать С++ и STL, что и так понятно.
Если понятно, то в чем проблема изучайте ... возвращайтесь на форум и задавайте вопросы с нова, но уже на нормальном уровне, на котором не будет лень отвечать. А глупые вопросы скорее всего отпадут сами по себе по мере изучения.

Цитата Сообщение от d7d1cd Посмотреть сообщение
Тогда для форума по С++ придуман всеобъемлющий ответ: "Учите С++"! И ничего больше объяснять не надо.
Да это хороший ответ для людей которые из категории "я хочу решить задачу, ни прилагая никаких усилий"

Добавлено через 6 минут
Цитата Сообщение от d7d1cd Посмотреть сообщение
Для решения моего вопроса необходимо использовать нечто подобное?
Только этот вопрос вас выдает.
Код не должен вызывать таких вопросов.
0
129 / 65 / 16
Регистрация: 03.09.2015
Сообщений: 832
19.09.2017, 23:14
Кликните здесь для просмотра всего текста
d7d1cd, не обижайся на Avazart. Помните, что не только у Вас есть свои проблемы. Сам по себе специалист он хороший)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.09.2017, 23:14
Помогаю со студенческими работами здесь

Как перенести продублировать данные из справочника.ЕдиницыИзмерения.Ссылка в справочник КлассификаторЕдиницИзмерения.Ссылка
Ну вапрос таков есть два справочника 1)КлассификаторЕдиницИзмерения и 2) ЕдиницыИзмерения нужна сделать так что бы у них были индоинтичные...

Что лучше сквозная ссылка или одна статейная ссылка с одного домена?
Что лучше сквозная ссылка или одна статейная ссылка с одного домена?

Как проверить - есть ли обратная ссылка ссылка?
Добрый вечер! Есть сайт. Обменялся год назад с другими сайтами ссылками. Сейчас хочу проверить - у всех ли этих сайтов сохранились...

Загаловок как ссылка - но не ссылка в статье
Как думаете, можно сделать кликабельные загаловки как тут? http://tut.by/ - то есть на главной странице или в любом разделе все загаловки...

Умножить одномерный массив (вектор-строка) на главную диагональ (вектор столбец)
Помогите исправить ошибки в коде, пожалуйста. Задание: задать матрицу 3х3 с помощью указателей, задать одномерный массив из 3-х...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru