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

Шаблоны - вопрос - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как в С++ обозначить константу е http://www.cyberforum.ru/cpp-beginners/thread320491.html
Как в С++ обозначить константу е в математических вычеслениях
C++ одномерный массив. Поиск элементов в дипазоне Задание: Существует одномерный массив типа int. Определить имеет ли массив числа в диапазоне от А до В. Если имеет, то вывести их на экран. А и В вводятся из клавиатуры. Помогите пожалуйста с заданием. Желательно с комментариями чтоб понятно было. http://www.cyberforum.ru/cpp-beginners/thread320449.html
C++ Обработка строк
Всем привет!!!Помогите пожалуйста в решении этой задачи!!!!! Разработать алгоритм и программу для определения минимального количества первых символов, по которым можно различать слова из заданного текста. Добавлено через 1 час 19 минут Плиззз!!если есть минутка, помогите пожалуйста!!!
C++ Обработка текста, разделяемого на слова
Задан текст, содержащий произвольное количество строк, в которых отдельные слова могут разделяться одним или несколькими пробелами и знаками пунктуации(переносы не используються). Сформировать новый текст, который являеться результатом одного из следующих преобразований исходного текста: заменить заданное слово на другое слово столько раз, сколько оно встречаеться в тексте. Входные и выходные...
C++ Возвращение трех значений http://www.cyberforum.ru/cpp-beginners/thread320432.html
Как в функции возвратить три значения?
C++ Курсовая по ООП Здравствуйте, столкнулась с проблемой, необходимо сделать курсовую, а в програмировании на С++ полный ноль. Если у кого есть возможность, подскажите. Работа довольно объемная, а времени осталось мало. Есть даже пример похожей работы, но просидев пару часов, так и не смогла ничего понять. Вот само задание, зеленым выделены пункты которые необходимо выполнить. А это пример выполненной... подробнее

Показать сообщение отдельно
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
20.06.2011, 13:01     Шаблоны - вопрос
AzaKendler,
ведь сравнивать 2 адреса - это неверно.
Вы не правы уже тут. Если ключ указатель - сравниваются именно два адреса. Все таки действует оператор less или другой поданный пользователем предикат. А less<> всего-лишь сравнивает.
На тему определения. boost::type_traits. Скоро будет std::type_traits, полагаю во многих компилях уже есть.

Добавлено через 10 минут
Дабы не быть голословным на тему less.

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
#include <iostream>
#include <map>
#include <algorithm>
#include <iterator>
 
int main()
{
    std::map<int*, int> mp;
    std::vector<int> vec((std::istream_iterator<int>(std::cin)), std::istream_iterator<int>());
    std::vector<int*> pvec(vec.size());
    auto iter = vec.begin();
    std::for_each(pvec.begin(), pvec.end(), [&iter](int*& pointer) {pointer = &(*iter); ++iter;});
    iter = vec.begin();
    auto piter = pvec.begin();
    for(; iter != vec.end(); ++iter, ++piter)
    {
        mp.insert(std::make_pair(*piter, *iter));
    }
    std::for_each(mp.begin(), mp.end(), [](const std::pair<int*, int>& pair) 
            {
                std::cout << "Pointer: " << pair.first << '\n'
                          << "Value: " << pair.second << '\n';
            });
    return 0;
}
Добавлено через 15 минут
Ну и на тему type_traits примерчик.

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
#include <iostream>
#include <type_traits>
 
class check
{
public:
    template<class T>
    bool operator()(const T& value) 
    {
        return std::is_pointer<T>::value;
    }
};
 
int main()
{
    check checker;
    std::cout << std::boolalpha << checker(5) << '\n';
    std::cout << std::boolalpha << checker(25.5) << '\n';
    int variable = 5;
    int* ptr = &variable;
    std::cout << std::boolalpha << checker(ptr) << '\n';
    int** pptr = &ptr;
    std::cout << std::boolalpha << checker(pptr) << '\n';
    std::cout << std::boolalpha << std::is_pod<int>::value << '\n';
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru