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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Misha_prog
0 / 0 / 0
Регистрация: 15.04.2013
Сообщений: 184
#1

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

17.05.2014, 12:39. Просмотров 127. Ответов 0
Метки нет (Все метки)

Всем Привет! делаю собственный класс строк. там в конкаенации строк по несколько раз перевыделяю память .... вот . Слышал что можно сделать что то типа перемещающегго буффер , но вообще не понимаю как его так можно сделать вот пример моей конкатенации строк
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++
Можете привести пример реализации перемещающего конструктора?

Перемещающий конструктор по умолчанию - C++
Есть класс содержащий в себе std::unique_ptr. Так как unique_ptr не умеет копироваться, копирующего конструктора у класса быть не может. Но...

Перемещающий конструктор по умолчанию - C++
Генерируется ли конструктор перемещения для простых структур? Например в таком вариант обмен объектами при сортировке будет производится...

Как организовать буффер переменной длины? - C++
Есть задача - отправлять в ком порт файл. Коней пакета 7E/ если в середине пакета находится символ 7Е - приемник смотрит перез ним...

В окне перемещаются объекты, отталкиваясь от стенок окна. Каждый объект имеет свой поток, перемещающий его. Встретившись, объекты начинают двигаться - C++
В окне перемещаются объекты, отталкиваясь от стенок окна. Каждый объект имеет свой поток, перемещающий его. Встретившись, объекты...

Скрипт, перемещающий назад и вперёд - JavaScript
Привет всем ! Как перейти на страницу назад или на страницу вперёд. Ответы типа смотри функцию history.back() и т.п. не напрягайте себя...

Создайте в классе Циркле метод, перемещающий центр круга в случайную точку. - Java
Здравствуйте, начал изучать Яву и остановился на таком глупом задание, помогите решить! Создайте в классе Циркле метод, перемещающий...

Из Edit в буффер - C++ Builder
Мне нужно, что бы при вводе пользователем данных в Edit ,данные копировались в буффер. Как это сделать? Спасибо за ответ. Добавлено...

ReadFile не пишет в буффер - Assembler
ReadFile не читает файл с ошибкой ERROR_NOACCESS. Я так понимаю что проблема в буфере, но не знаю что с ним делать :( пробовал обьявлять...

Сокеты, динамический буффер - C++
Всем добрый день. Есть клиент и сервер, соединение устанавливается(winsock2). Задача - создать буффер, записать в него нужные данные и...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru