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

templates, STL - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Задача со звездочками http://www.cyberforum.ru/cpp-beginners/thread973689.html
Пользователь вводит число, а компьютер должен вывести на экран пирамидку, с такой высотой как число Например, пользователь ввел 3 * ** *** ** *
C++ SDL Отображение текста на экране Вывожу на экран текст формата *.ttf c помощью функции TTF_Render Эта функция может выводить только текст, а вот как вывести значение переменной? // *.h struct C_LoadImages { void ttfInit(); inline void ttfQuit() { TTF_CloseFont(font); TTF_Quit(); } http://www.cyberforum.ru/cpp-beginners/thread973669.html
C++ Странная ошибка
// ConsoleApplication5.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <iostream> #include <vector> #include <cmath> #include <math.h> using namespace std;
Пользователь вводит вещественные числа x,y,z. Вычислить max(x+y+z, xyz) C++
Составить ДВЕ программы на языке C++ для решения одного из вариантов заданий с применением ОПЕРАТОРА if и с применением условий операции. Пользователь вводит вещественные числа x,y,z.Вычислить :max(x+y+z,xyz) Заранее Спасибо!
C++ Вместо своих данных в память вижу воистину неподдающееся объяснению явление какое-то http://www.cyberforum.ru/cpp-beginners/thread973645.html
Привет всем. Учусь кодить на C++. Решил в качестве практики написать линкер. Гружу объектник в память таким кодом: int ObjectFile::Load(char* FileName) { //Выводим имя файла printf("File: %s\n",FileName);
C++ namespace std Добрый день. Вычитал что могу использовать любой namespace. Но в другом месте написано что если не использовать std, то не сможет определится, например, cout. Так ли это? И если да, то как определить в каком пространстве какие имена? Спасибо. подробнее

Показать сообщение отдельно
AnyOne697
134 / 106 / 5
Регистрация: 22.05.2010
Сообщений: 533
11.10.2013, 01:59     templates, STL
Цитата Сообщение от kamre Посмотреть сообщение
Какие еще виртуальные функции? Какая еще "джедайская магия"?
Например, нужно уложить несколько миллионов комплексных чисел в контейнер и не потерять производительность при их обработке. C++ это легко позволяет сделать с помощью шаблонов (complex<T> и vector<T>) без какой-либо потери производительности вроде кучи аллокаций в heap, лишней косвенности и т.п. Все данные будут лежать одним куском в памяти и обрабатываться максимально эффективно, при этом все будет в объектах с удобным интерфейсом.
Чтобы добиться подобной производительности в Java придется полностью выбросить все абстракции и работать напрямую с массивом из double или float, где под каждое комплексное число будет отводиться два double/float. Причем даже ArrayList нельзя будет использовать для double/float из-за boxing. Не позволяют механизмы абстракции в Java получать эффективный код, слишком они там простенькие, даже в 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
#include <iostream>
 
class Object {
    /***/
}
 
class Complex : Object {
public:
    Complex ( double r, double i );
    Complex ( double n );
    Complex ( Complex& c );
    
    /* ... operator [ *,=,-,+,/,<<,>> ... ] */
    double operator double (); // ||c||
private:
    double m_real;
    double m_img;
}
 
class List : Object {
public:
    /***/
    virtual Object put ( Object o, int i = 0 );
    virtual Object get ( int i );
    /***/
private:
    /***/
}
 
int main(void) {
    List list;
    Complex c ( 2.5, -1.3 );
    list.put ( c );
    /****/
    cout << list.put ( 3 );
    
    return 0;
}
Это набросок по памяти. Конечно, Object считал указатели и всё такое. Именно поэтому были и такие "уроды":
C++
1
2
3
4
5
6
7
8
9
class ComplexList : Object {
public:
    /***/
    Complex put ( Complex c, int i = 0 );
    Complex get ( int i );
    /***/
private:
    /***/
}
Это кажется не настолько удобным, как шаблоны. Но мы взялись реализовать собственную библиотеку. И сделали. И ничего страшного. И всё нормально. И живём пока. И вроде даже проект живёт.
И кстати, лично мне кажется это более удобным, чем шаблоны. Особенно при использовании. Как будно пишешь на выразительном скриптовом языке без кучи звёздочек и знаков меньше-больше.

Добавлено через 5 минут
Алсо, совсем забыл. Здесь получается интересная штука - можно в один лист запихать объекты разного типа. Но, как я говорил, не хватает рефлексии.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru