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

вопрос по синтаксису/типам - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Навыки программирования!!! http://www.cyberforum.ru/cpp-beginners/thread375958.html
Помогите пожалуйста! Я хочу заняться вплотную системным администрированием! Какую лучше читать литературу?
C++ как реализовать на с++ procedure KOMMI(i); begin for y Є ЗАПИСЬ] do if cost + A, y] < OptCost then if (i = n+1) AND (y = k) then begin OptX:=X; OptCost:= cost + A,y] end else if DOP then begin ... http://www.cyberforum.ru/cpp-beginners/thread375955.html
C++ Дана целочисленна прямоугольная матрица. Определить количество строк, не содержащих ни одного нулевого элемента.
Выполнить задание, используя динамическое выделение памяти. Дана целочисленна прямоугольная матрица. Определить количество строк, не содержащих ни одного нулевого элемента. Зарание большое...
пример из книги страуструпа C++
struct pair { char* name; // ñòðîêà int val; // öåëîå }; const int large = 1024; static pair vec; pair* find(const char* p) ...
C++ Даны три положительных числа а, b, с. Проверить, будут ли они сторонами треугольника. Если да, то вычислить площадь этого треугольника. http://www.cyberforum.ru/cpp-beginners/thread375920.html
Помогите, пожалуйста, исправить здесь ошибку времени... #include<iostream> #include<cmath> using namespace std; void main() { double a, b, c, s, p; cout<<"Vvedite a, b, c: "; cin>>a>>b>>c;...
C++ проверка нажатия клавиши Всем привет, начал писать прогу и нет времени искать что либо в интернете... Кто помнит как как проверить что нажата клавиша 1 ?? Смысл такой пользователю предоставляется выбор 1: ---- 2:----... подробнее

Показать сообщение отдельно
rangerx
1933 / 1542 / 141
Регистрация: 31.05.2009
Сообщений: 2,912
01.11.2011, 17:08
Цитата Сообщение от yekka Посмотреть сообщение
я что-то понять не могу, что за тип такой __tuple_type unique_ptr::* или _Tp* unique_ptr::* ?
Это указатель на член класса. Простой пример
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
#include <iostream>
#include <string>
 
struct A
{
    int i;
    std::string s;
};
 
int main()
{
    typedef int A::* i_ptr;
    typedef std::string A::* s_ptr;
 
    i_ptr p1 =  &A::i;
    s_ptr p2 =  &A::s;
 
    A a = {1, "text"};
 
    std::cout << a.*p1 << '\n';
    std::cout << a.*p2 << '\n';
 
    return 0;
}
Ну и немного более сложный пример c созданием функтора для сортировки массива структур по полям:
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
59
60
61
62
63
64
65
66
#include <iostream>
#include <string>
#include <functional>
#include <algorithm>
 
// функтор
template
<
    typename StructType,
    typename MemberType
>
class StructMemberLessCmp : std::binary_function<StructType, StructType, bool>
{
    private:
        typedef MemberType StructType::* member_ptr_type;
 
 
    private:
        member_ptr_type p_;
 
    public:
        StructMemberLessCmp(member_ptr_type p)
            : p_(p)
        {
        }
 
        bool operator()(const StructType &a, const StructType& b) const
        {
            return a.*p_ < b.*p_;
        }
};
 
//---------------
 
struct A
{
    int i;
    std::string s;
};
 
int main()
{
    const size_t n = 5;
    A a[n] =
    {
        {1, "a"},
        {4, "c"},
        {2, "d"},
        {5, "b"},
        {3, "e"}
    };
 
    // сортируем массив структур по полю int i и выводим на экран
    std::sort(a, a + n, StructMemberLessCmp<A, int>(&A::i));
    for(size_t i = 0; i < n; ++i)
        std::cout << a[i].i << ' ' << a[i].s << '\n';
    std::cout << '\n';
 
    // сортируем массив структур по полю std::string s и выводим на экран
    std::sort(a, a + n, StructMemberLessCmp<A, std::string>(&A::s));
    for(size_t i = 0; i < n; ++i)
        std::cout << a[i].i << ' ' << a[i].s << '\n';
    std::cout << '\n';
 
    return 0;
}
Добавлено через 3 часа 2 минуты
Забыл указать public при наследовании
C++
1
class StructMemberLessCmp : public std::binary_function<StructType, StructType, bool>
4
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru