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

Перемещающий буффер - C++

Восстановить пароль Регистрация
 
Misha_prog
0 / 0 / 0
Регистрация: 15.04.2013
Сообщений: 184
17.05.2014, 12:39     Перемещающий буффер #1
Всем Привет! делаю собственный класс строк. там в конкаенации строк по несколько раз перевыделяю память .... вот . Слышал что можно сделать что то типа перемещающегго буффер , но вообще не понимаю как его так можно сделать вот пример моей конкатенации строк
C++
1
2
3
4
5
6
7
8
CMyString  CMyString::operator+(CMyString const & str)
{
    
    CMyString tmpStr(*this); // вот что  то типа здесь можно сделать без копии а созданием move буффера 
    tmpStr += str;
 
    return tmpStr; 
}
а вот опретаор +=
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void ConcatStr(char * res, const char * first, const char * sec, size_t countFirst, size_t countSec)
{
    memcpy(res, first, countFirst);
    memcpy(res + countFirst, sec, countSec);
    res[countFirst + countSec] = '\0';
}
 
CMyString & CMyString::operator+=(CMyString const & str)
{
    size_t tmpSize = size + str.size;
    char * temp = pChars;
    pChars = new char[tmpSize + 1];
    ConcatStr(pChars, temp, str.GetString(), size, str.size);
    size = tmpSize;
    delete[] temp;
    
    return *this;
}
может кто нибудь сталкивался с подобными пробемами вот в этой строке
C++
1
CMyString tmpStr(*this); // вот что  то типа здесь можно сделать без копии а созданием move буффера
как нибудь сделать так чтоб память не выделялась и да конечно нужно ещё учитывать и сложение не только со своими строками но и stl' ской строкой...или кто нибудь знает где про это почитать подробнее можно
Всем Спасибо за внимание!!!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.05.2014, 12:39     Перемещающий буффер
Посмотрите здесь:

как организовать буффер переменной длины C++
Из Edit в буффер C++ Builder
C++ Сокеты, динамический буффер
ADSP - цыклический буффер. Assembler
JavaScript Скрипт, перемещающий назад и вперёд.
Assembler ReadFile не пишет в буффер
C++ В окне перемещаются объекты, отталкиваясь от стенок окна. Каждый объект имеет свой поток, перемещающий его. Встретившись, объекты начинают двигаться
Создайте в классе Циркле метод, перемещающий центр круга в случайную точку. Java

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 02:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru