Перегрузка операции минус

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Аватара пользователя
Сионист
Сообщения: 1211
Зарегистрирован: 31 мар 2014, 06:18

Romeo писал(а):Речь идёт о секундах, а не миллисекундах.
Так то и оно, что разница не значима. Я же критикую те тексты, где читабельность исчисляется десятками минут на одну короткую строчку.
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.
Аватара пользователя
Сионист
Сообщения: 1211
Зарегистрирован: 31 мар 2014, 06:18

То есть сначала не отрицаешь. Но потом говоришь, что по себе "смерил" (wtf?), то есть всё таки выходит, что отрицаешь? А что значит, что доказательство не тормознуло, вообще без понятия? Жаргонизм?Где здесь причина? Где следствие? Я сначала думал, что тебя трудно понять, так как русский язык не родной, но уже начинаю подозревать, что просто проблемы с логикой, и от языка это никак не зависит.
Чем различаются глаголы "читали" и "читаете"?
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Сионист писал(а):Чем различаются глаголы "читали" и "читаете"?
Конечно знаю. Только в чём ты меня уличить пытаешь, я понять не могу. Твоим мысли и определения слишком бессвязны.

Про bool прочёл? Вопросы ещё есть?
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Absurd
Сообщения: 1228
Зарегистрирован: 26 фев 2004, 13:24
Откуда: Pietari, Venäjä
Контактная информация:

Sereg писал(а):Ребята помогите решить!!!
Создать несколько объектов (например, a и b) разработанного класса. Класс – символьная строка. Реализовать для объектов данного класса перегрузку операции - (c=a-b). Содержимое объектов (a,b,c, их строк), до и после выполнения операции, вывести на экран.

Постарался сделать коряво и в старом стиле. Походи по коду отладчиком, разберись как он работает. Напиши функцию которая выводит результат хотябы.

Код: Выделить всё

#include <vector>
#include <string>
#include <algorithm>

class MyString {
  MyString(const std::vector< std::string >& words);
public:
  MyString(const std::string& string);
  MyString operator-(const MyString& other) const;
private:
  static std::vector< std::string > split(const std::string& arg, char sep);
  std::vector< std::string > words_;
};

MyString::MyString(const std::vector< std::string >& words)
  :words_(words)
{}

MyString::MyString(const std::string& string)
  :words_(split(string, ' '))
{}

std::vector< std::string > MyString::split(const std::string& arg, char sep)
{
  std::vector< std::string > retVal;
  std::string::const_iterator p0 = arg.cbegin();
  std::string::const_iterator p1 = arg.cbegin();
  std::string::const_iterator pEnd = arg.cend();
  bool newWord = false;
  for (; ;) {
    if (p1 == pEnd || *p1 == ' ') {
      if (!(retVal.empty() && p0 == p1 && p1 == pEnd)) {
        retVal.push_back(std::string(p0, p1));
        newWord = true;
      }
    }
    if (p1 != pEnd)
      ++p1;
    else
      break;
    if (newWord) {
      p0 = p1;
      newWord = false;
    }
  }
  return retVal;
}

MyString MyString: :o perator-(const MyString& other) const
{
  std::vector< std::string > acc;
  std::vector< std::string > otherWords = other.words_;
  std::sort(otherWords.begin(), otherWords.end());
  std::vector< std::string >::const_iterator itr = words_.begin();
  for (; itr != words_.end(); ++itr) {
    if (!std::binary_search(otherWords.begin(), otherWords.end(), *itr)) {
      acc.push_back(*itr);
    }
  }
  return MyString(acc);
}

int main()
{
  MyString ww("delta");
  MyString qq("apple bravo delta jazz");
  MyString ee = qq - ww;
  return 0;
}
2B OR NOT(2B) = FF
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

А это решение, похоже, для вычитания по словам. Absurd не осилил прочитать четыре страницы, которые мы нафлудили. Но тем лучше даже. У топикстартера будет из чего выбрать :)
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Absurd
Сообщения: 1228
Зарегистрирован: 26 фев 2004, 13:24
Откуда: Pietari, Venäjä
Контактная информация:

Ой, а поведайте нам, дремучим, чем октет от байта отличается, раз уж Вы их противопоставили?
На каком-нибудь допотопном RISC-е может быть sizeof(char)==sizeof(short)==sizeof(int)==1, при этом CHAR_BITS==32. По определению байт это минимально адресуемая ячейка памяти и на такой машине ее размер равен не 8, а 32 битам. Октет же 8 бит всегда. Я не работал на таком железе никогда, читал в Usenet в comp.lang.c++ когда был студентом. Другое дело что сейчас до сих пор живы только x86_64, ARM и AArch64 и на этих процессорах подобной суровости не было никогда. Причем они выжили во многом из-за отсутствия суровости, т.к. старые программы не надо было переписывать, а обратная совместимость хотябы на уровне исходного кода очень нужна.
2B OR NOT(2B) = FF
Ответить