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

Алгоритмы из <algorithm> являются макросами или всё же функциями? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти сумму элементов каждой диагонали матрицы http://www.cyberforum.ru/cpp-beginners/thread538293.html
Matrix82º. Дана квадратная матрица A порядка M. Найти сумму элементов каж-дой ее диагонали, параллельной главной (начиная с одноэлементной диа-гонали A1,M).
C++ Неправильные результати. Генератор чисел с экспонентным закомон распредиление #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <time.h> #include <math.h> #define LOFFSET log((double)RAND_MAX) double getLrand(double l){ return (log(rand()+1.0)-LOFFSET)/(-l); } http://www.cyberforum.ru/cpp-beginners/thread538281.html
cin.getline() не читает 1 символ C++
Доброго времени суток :) пишу довольно простой код, но тут появилась проблема. Вот обрезаний кусок кода который не хочет работать адекватно. system("cls"); cout<<"Enter a file name that we decode"<<endl; char name;
C++ Число перестановок QuickSort
Здравствуйте! Подскажите пожалуйста, как можно посчитать число перестановок QuickSort. Имеется массив на 10,000 элементов
C++ Подключение файлов http://www.cyberforum.ru/cpp-beginners/thread538254.html
Здраствуйте! Проблема заключается в том, что при чтении файла формата .txt файл читает но вместо текста : Congratulations you did it выводит "китайский" язык, при обявлении char ch; все вроде нормально ( открывает первый символ ), но как только я пытаюсь обьявить ch как массив, то выводится "китайский" язык. Помогите пожалуста. #include <fstream> #include <iostream> #include <stdio.h>...
C++ Число пи с заданной точностью есть часть кода... необходимо дописать, что бы выводило число пи с заданной точностью... cout<<"Vvedite tochnost' vichisleniya\n"; cin>>t; elem=1; while (elem>=t) { elem=1/(2*n-1.0); if(fmod(n,2)==0) pi=pi-elem; подробнее

Показать сообщение отдельно
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
04.04.2012, 01:36     Алгоритмы из <algorithm> являются макросами или всё же функциями?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <algorithm>
#include <iostream>
#include <vector>
 
inline void func(const int value) __attribute__((always_inline));
 
void func(const int value)
{
    std::cout << value * 0x23456 << std::endl;
}
 
int main()
{
    std::vector <int> v = { 1, 2, 3, 4, 5, 6 };
    std::cout << 0x12345 << std::endl;
    std::for_each (v.begin(), v.end(), func);
}
c -O0

Assembler
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
59
60
61
62
63
64
65
66
67
68
69
70
71
08048794 <main>:
 8048794:   8d 4c 24 04             lea    0x4(%esp),%ecx
 8048798:   83 e4 f0                and    $0xfffffff0,%esp
 804879b:   ff 71 fc                pushl  -0x4(%ecx)
 804879e:   55                      push   %ebp
 804879f:   89 e5                   mov    %esp,%ebp
 80487a1:   53                      push   %ebx
 80487a2:   51                      push   %ecx
 80487a3:   83 ec 30                sub    $0x30,%esp
 80487a6:   8d 45 f7                lea    -0x9(%ebp),%eax
 80487a9:   89 04 24                mov    %eax,(%esp)
 80487ac:   e8 99 01 00 00          call   804894a <_ZNSaIiEC1Ev>
 80487b1:   c7 44 24 08 06 00 00    movl   $0x6,0x8(%esp)
 80487b8:   00 
 80487b9:   c7 44 24 04 84 90 04    movl   $0x8049084,0x4(%esp)
 80487c0:   08 
 80487c1:   8d 45 e4                lea    -0x1c(%ebp),%eax
 80487c4:   89 04 24                mov    %eax,(%esp)
 80487c7:   e8 68 01 00 00          call   8048934 <_ZNSt16initializer_listIiEC1EPKij>
 80487cc:   8d 45 f7                lea    -0x9(%ebp),%eax
 80487cf:   89 44 24 0c             mov    %eax,0xc(%esp)
 80487d3:   8b 45 e4                mov    -0x1c(%ebp),%eax
 80487d6:   8b 55 e8                mov    -0x18(%ebp),%edx
 80487d9:   89 44 24 04             mov    %eax,0x4(%esp)
 80487dd:   89 54 24 08             mov    %edx,0x8(%esp)
 80487e1:   8d 45 d8                lea    -0x28(%ebp),%eax
 80487e4:   89 04 24                mov    %eax,(%esp)
 80487e7:   e8 c6 01 00 00          call   80489b2 <_ZNSt6vectorIiSaIiEEC1ESt16initializer_listIiERKS0_>
 80487ec:   8d 45 f7                lea    -0x9(%ebp),%eax
 80487ef:   89 04 24                mov    %eax,(%esp)
 80487f2:   e8 67 01 00 00          call   804895e <_ZNSaIiED1Ev>
 80487f7:   c7 44 24 04 45 23 01    movl   $0x12345,0x4(%esp)
 80487fe:   00 
 80487ff:   c7 04 24 40 b0 04 08    movl   $0x804b040,(%esp)
 8048806:   e8 f5 fd ff ff          call   8048600 <_ZNSolsEi@plt>
 804880b:   c7 44 24 04 b0 86 04    movl   $0x80486b0,0x4(%esp)
 8048812:   08 
 8048813:   89 04 24                mov    %eax,(%esp)
 8048816:   e8 75 fe ff ff          call   8048690 <_ZNSolsEPFRSoS_E@plt>
 804881b:   8d 45 f0                lea    -0x10(%ebp),%eax
 804881e:   8d 55 d8                lea    -0x28(%ebp),%edx
 8048821:   89 54 24 04             mov    %edx,0x4(%esp)
 8048825:   89 04 24                mov    %eax,(%esp)
 8048828:   e8 67 02 00 00          call   8048a94 <_ZNSt6vectorIiSaIiEE3endEv>
 804882d:   83 ec 04                sub    $0x4,%esp
 8048830:   8d 45 ec                lea    -0x14(%ebp),%eax
 8048833:   8d 55 d8                lea    -0x28(%ebp),%edx
 8048836:   89 54 24 04             mov    %edx,0x4(%esp)
 804883a:   89 04 24                mov    %eax,(%esp)
 804883d:   e8 32 02 00 00          call   8048a74 <_ZNSt6vectorIiSaIiEE5beginEv>
 8048842:   83 ec 04                sub    $0x4,%esp
 8048845:   c7 44 24 08 03 89 04    movl   $0x8048903,0x8(%esp)
###################################################################
 804884c:   08 
 804884d:   8b 45 f0                mov    -0x10(%ebp),%eax
 8048850:   89 44 24 04             mov    %eax,0x4(%esp)
 8048854:   8b 45 ec                mov    -0x14(%ebp),%eax
 8048857:   89 04 24                mov    %eax,(%esp)
 804885a:   e8 57 02 00 00          call   8048ab6 <_ZSt8for_eachIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEPFviEET0_T_SA_S9_>
 804885f:   8d 45 d8                lea    -0x28(%ebp),%eax
....
08048903 <_Z4funci>:
 8048903:   55                      push   %ebp
 8048904:   89 e5                   mov    %esp,%ebp
 8048906:   83 ec 18                sub    $0x18,%esp
 8048909:   8b 45 08                mov    0x8(%ebp),%eax
 804890c:   69 c0 56 34 02 00       imul   $0x23456,%eax,%eax
 8048912:   89 44 24 04             mov    %eax,0x4(%esp)
 8048916:   c7 04 24 40 b0 04 08    movl   $0x804b040,(%esp)
 804891d:   e8 de fc ff ff          call   8048600 <_ZNSolsEi@plt>
 8048922:   c7 44 24 04 b0 86 04    movl   $0x80486b0,0x4(%esp)
просто кладет указатель на функцию - и никакая она не inline )
 
Текущее время: 00:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru