Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.06.2018, 22:40   #1
Александр121
Форумчанин
 
Регистрация: 17.09.2017
Сообщений: 265
По умолчанию [C++] что делает это строка?

Код:
 long double acc =  l2(v.back());
l2// что это такое? число приводится к очень стронному виду
v.back() // это взять последний элемент вектора?
Александр121 вне форума Ответить с цитированием
Старый 26.06.2018, 23:59   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Цитата:
l2// что это такое? число приводится к очень стронному виду
Вообще-то, функция l2(L маленькое)

Цитата:
v.back() // это взять последний элемент вектора?
Если v ветор, то https://en.cppreference.com/w/cpp/container/vector/back
p51x вне форума Ответить с цитированием
Старый 27.06.2018, 00:57   #3
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Вообще-то, функция l2(L маленькое)
Может, это оттого, что я не знаю C++, но мне непонятно, что делает функция, когда её не вызывают через (), а просто указывают имя.
Вадим Мошев вне форума Ответить с цитированием
Старый 27.06.2018, 01:24   #4
Александр121
Форумчанин
 
Регистрация: 17.09.2017
Сообщений: 265
По умолчанию

Код:
inline long double l2(long double x) {
    return log(log(x) / log(2)) / log(2);
}
вот она эта функция. только когда я убераю inline long double и оставляю так она начинает неправильно работать
Код:
l2(long double x) {
    return log(log(x) / log(2)) / log(2);
}
почему когда я убераю inline long double у меня теряются знаки.

Код:
#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
 
using namespace std;
 
inline long double l2(long double x) {
    return log(log(x) / log(2)) / log(2);
}
l3(long double x) { // тут убрал и вывод изменился inline long double
    return log(log(x) / log(2)) / log(2);
}
int main(){
 
 
 
 long double acc = l2(19); // вызов функции
 long double acc1 = l3(19); // вызов функции
 cout<<acc; // тут выводит 2.08676
 cout<<endl;
 cout<<acc1; // тут выводит 2
 
 
}

Последний раз редактировалось Вадим Мошев; 06.07.2018 в 15:46.
Александр121 вне форума Ответить с цитированием
Старый 27.06.2018, 06:17   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Потому что у вас старый компилятор, который еще пока поддерживает инт по дефолту. Т.е. когда вы убрали возвращаемый тип, он установился в инт. Надеюсь не надо объяснять, чем отличается инт от дабл?

Цитата:
Сообщение от Вадим Мошев Посмотреть сообщение
Может, это оттого, что я не знаю C++, но мне непонятно, что делает функция, когда её не вызывают через (), а просто указывают имя.
Вы о чем? Тут ее как раз и вызывают через (): l2(v.back())
p51x вне форума Ответить с цитированием
Старый 27.06.2018, 16:09   #6
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Вы о чем? Тут ее как раз и вызывают через (): l2(v.back())
Всё, до меня дошло. Просто автор прямо в своём коде в комментариях спрашивал, что такое l2, записав её без вызова. В оригинале конечно этого не было.
Вадим Мошев вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
что делает это цикл? Александр121 Общие вопросы C/C++ 1 23.12.2017 11:30
Что это ? Что и как делает этот код? Dimka-novitsek Общие вопросы C/C++ 1 03.05.2015 01:57
Что делает строка XyLigAnD Помощь студентам 1 30.05.2014 09:38
Обьясните пожалуста как и что делает эта программа и почему она это делает. Dimka-novitsek Общие вопросы C/C++ 7 16.10.2013 12:02
Обьяснить код программи, что каждая строка делает NastyaV Фриланс 2 26.03.2011 17:04