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

copy on write оптимизация - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ C++ and dll -> нужна консультация на моём примере http://www.cyberforum.ru/cpp-beginners/thread574850.html
Нужно загрузить несколько классов в dll, а потом, в другом проекте прочитать эти классы из dll и, используя этот dll с помощью механизмов позднего связывания что-нибудь поделать) Классы есть:...
C++ Нахождение минимальной строки в массиве и смена мест в ней строк Из 32 положительных, отрицательных и нулевых значений чисел сформируйте матрицу 4 х 8. Поменяйте местами строку, содержащую минимальный элемент, с первой строкой, выдайте преобразованную матрицу. ... http://www.cyberforum.ru/cpp-beginners/thread574847.html
C++ scanf,cin разбор ввода данных
Доброго времени суток :) Подскажите как взять с консоли или скажем с файла(fscanf) 2 числа и текст между (текст и числа разделены знаками препинания) или до них вот пример: 15.Text.23 ...
Двойной указатель C++
Это не совсем C++ вроде, а просто C, но поясните, пожалуйста, зачем в коде в строчку **sums=NULL используется двойной указатель? #include <stdio.h> #include <process.h> #include <math.h> float...
C++ как узнать время работы программы решения алгоритма http://www.cyberforum.ru/cpp-beginners/thread574816.html
Добрый вечер! Подскажите, пожалуйста, как сделать так, чтобы программа выводила на экран время, затраченное на решение алгоритма? Можно ли узнать, сколько ресурсов затрачено на решение? #include...
C++ последовательность Даны n, последовательность n x , x ,...x 1 2 . Получить (1+R)/(1+S), где R – сумма тех членов последовательности, которые не превосходят 1, а S – сумма членов, больших 1. Использовать динамические... подробнее

Показать сообщение отдельно
Jupiter
Каратель
Эксперт С++
6554 / 3975 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
15.05.2012, 21:37
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
#include <iostream>
#include <vector>
 
template< class T >
class copy_on_write_sample {
public:
    copy_on_write_sample() 
    : m_vec()
    , m_pvec(&m_vec)
    , m_replace(false)
    {}
 
    copy_on_write_sample(copy_on_write_sample const& t) 
    : m_vec()
    , m_pvec(t.m_pvec)
    , m_replace(true)
    {}
 
    copy_on_write_sample& operator = (copy_on_write_sample const& t)
    {
        m_replace = true;
        m_pvec    = t.m_pvec;
        return *this;
    }
 
    void push_back(T const& val)
    {
        if (m_replace)
        {
            m_replace = false;
            m_vec = *m_pvec;
            m_pvec = &m_vec;
        }
 
        m_pvec->push_back(val);
    }
private:
    std::vector<T>  m_vec;
    std::vector<T>* m_pvec;
    bool m_replace;
};
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru