Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 15.12.2015
Сообщений: 7
1

#define, чтобы поставлять info[s.id]->root

15.12.2015, 16:34. Просмотров 920. Ответов 17
Метки нет (Все метки)


Как определить "info[s.id]->root", где info - vector<bt*>, буквенным выражением, для последующей подстановки в аргумент функции?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.12.2015, 16:34
Ответы с готовыми решениями:

Сделать, чтобы базовые слои layer и layer1, были в одном root а layer2 в другом root
Доброго времени суток. Вот код &lt;html&gt; &lt;head&gt; &lt;title&gt; A Basic GeoExt Page &lt;/title&gt; &lt;script...

Как реализовать директиву #define для создания шаблона отпределения #define ?
Здравствуйте уважаемые. При написании программы появилась необходимость задать шаблон создания...

Скрытие столбцов. Ошибка App-define od obj-define error
Привет) помогите, пожалуйста, ответить на следующие вопросы: 1) выскакивает ошибка: App-define...

Открывается Sd-steam.info в браузере, затем Gameorplay.info
При запуске системы сразу открывается Sd-steam.info в браузере, затем открывается Gameorplay.info....

17
Dimension
582 / 450 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
15.12.2015, 16:46 2
C++
1
#define info vector<bt*>
0
0 / 0 / 0
Регистрация: 15.12.2015
Сообщений: 7
15.12.2015, 17:00  [ТС] 3
мне нужно передать именно info[s.id]->root, как это сделать?
0
2540 / 1199 / 358
Регистрация: 30.11.2013
Сообщений: 3,820
15.12.2015, 17:09 4
Dimension, что это было?)

Charles25,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <vector>
using namespace std;
 
class bt;
 
int main()
{
   typedef vector<bt*> MyInfo;
 
   MyInfo info;
 
   Root& currentRoot = info[s.id]->root;
 
   currentRoot->f(); // ok
}
P.S. Последующая постановка вопроса про аргументы функции хромает - и на стаковерфлоу просто бы закрыли вашу тему - а тут даже отвечают)))
0
49 / 49 / 31
Регистрация: 07.10.2015
Сообщений: 170
15.12.2015, 17:09 5
C++
1
#define expr info[s.id]->root
0
Dimension
582 / 450 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
15.12.2015, 17:13 6
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
что это было?)
не особо понял что вообще он хочет ,ну логично ,если info это vector , то можно сделать как я
0
0 / 0 / 0
Регистрация: 15.12.2015
Сообщений: 7
15.12.2015, 17:49  [ТС] 7
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Root& currentRoot = info[s.id]->root;
что за ссылка на Root?

Через #define никак нельзя?

Добавлено через 2 минуты
Цитата Сообщение от Lensato Посмотреть сообщение
#define expr info[s.id]->root
эх, если бы... квадратные скобки не воспринимает
0
:)
Эксперт С++
4765 / 3259 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
15.12.2015, 18:01 8
Цитата Сообщение от Charles25 Посмотреть сообщение
Через #define никак нельзя?
Сформулируй четче чего же ты действительно хочешь.
0
0 / 0 / 0
Регистрация: 15.12.2015
Сообщений: 7
15.12.2015, 18:05  [ТС] 9
Цитата Сообщение от Tulosba Посмотреть сообщение
Сформулируй четче чего же ты действительно хочешь.
#define some_expr info[s.id]->data

static vector<bt*> info;
...
int s = 15;

if(some_expr > s) {...}
0
Dimension
582 / 450 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
15.12.2015, 18:08 10
C++
1
#define kek(a,b) info[(a)]->(b)
0
0 / 0 / 0
Регистрация: 15.12.2015
Сообщений: 7
15.12.2015, 18:14  [ТС] 11
Понятно, спасибо за ответы, пойду-ка я на другой форум
0
Tulosba
15.12.2015, 18:16
  #12

Не по теме:

Charles25, офигительно четко получилось :D

0
Don't worry, be happy
16970 / 9851 / 1897
Регистрация: 27.09.2012
Сообщений: 24,429
Записей в блоге: 1
15.12.2015, 18:19 13
C++
1
2
3
4
5
6
7
//Гг
auto & some_expr ( vector<bt*> & vec ) -> decltype(vec[s.id]->data)
{
   return vec[s.id]->data ;
}
//...
if(some_expr(info) > s) {/*...*/}
0
:)
Эксперт С++
4765 / 3259 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
15.12.2015, 18:28 14
Croessmah переходи уже на C++14, можно без decltype в хвосте
0
Don't worry, be happy
16970 / 9851 / 1897
Регистрация: 27.09.2012
Сообщений: 24,429
Записей в блоге: 1
15.12.2015, 18:33 15
Tulosba, Даже не открывал
0
:)
Эксперт С++
4765 / 3259 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
15.12.2015, 18:42 16
Цитата Сообщение от Croessmah Посмотреть сообщение
Даже не открывал
Четырнадцатый Стандарт?
0
Don't worry, be happy
16970 / 9851 / 1897
Регистрация: 27.09.2012
Сообщений: 24,429
Записей в блоге: 1
15.12.2015, 19:14 17
Цитата Сообщение от Tulosba Посмотреть сообщение
Четырнадцатый Стандарт?
ага.
0
49 / 49 / 31
Регистрация: 07.10.2015
Сообщений: 170
16.12.2015, 09:29 18
Цитата Сообщение от Charles25 Посмотреть сообщение
Сообщение от Lensato
C++
1
#define expr info[s.id]->root
эх, если бы... квадратные скобки не воспринимает
Что значит не воспринимает? У меня все работает.
Вывод программы: "The value is: 2"
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
#include <iostream>
#include <vector>
using namespace std;
 
#define expr info[s.id]->root
 
class bt
{
public:
    int root = 8;
 
    bt(int val)
    {
        root = val;
    }
};
 
class S
{
public:
    int id = 1;
};
 
void func(int val)
{
    cout << "The value is: " << val << endl;
}
 
int main()
{
    vector<bt*> info;
 
    bt *bt1 = new bt(1);
    bt *bt2 = new bt(2);
    bt *bt3 = new bt(3);
    S s;
 
    info.push_back(bt1);
    info.push_back(bt2);
    info.push_back(bt3);
 
    func(expr);
 
    system("pause");
    return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.12.2015, 09:29

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

что написать чтобы программа сама по себе попала в boot/root?
что можно написать или сделать что прога сама по себе попала после загрузки в рут?или бут не...

[Tkinter] Как работает root.rowconfigure / root.columnconfigure?
Немного не понял для чего они и как вообще используются

Как лечить shown root:root -R /
У меня есть маленький CentOS7 http сервер. При очередном редактирования крона на бэкап данных...

Работа с дисками. Как сделать чтобы разные диски записывались в разные переменные, а не в один root?
Есть код, он записывает названия всех съемных носителей в root и выводит его. Если в root - 2...


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

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

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