🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #309465

Re: Zabrali kopiowanie przy zapisie...

#309465
From: bartekltg
Date: Tue, 10 Oct 2017 01:35
50 lines
3719 bytes
On Monday, October 9, 2017 at 9:33:33 AM UTC+2, Wojciech Muła wrote:
> On Monday, October 9, 2017 at 7:23:19 AM UTC+2, bartekltg wrote:
> > On Saturday, October 7, 2017 at 3:20:51 PM UTC+2, Wojciech Muła wrote:
> > > On Saturday, October 7, 2017 at 11:16:42 AM UTC+2, Roman Tyczka wrote:
> > > > On Fri, 6 Oct 2017 06:08:35 -0700 (PDT), M.M. wrote:
> > > > 
> > > > >> C++ ma wybitnie spieprzony design stringów; pomysł mutowalnych
> > > > >> stringów jest głupi z definicji. Napis to napis, zwykła wartość.
> > > > >> Modyfikacja napisu nie powinna być odpowiedzialnością klasy
> > > > >> std::string.
> > > > > 
> > > > > I do takich wniosków doszli twórcy Javy. Osobiście jednak nie mam
> > > > > preferencji ani do jednego, ani do drugiego rozwiązania.
> > > > 
> > > > Czyli jak jest w Javie?
> > > 
> > > String jest immutable. Wszystkie operacje na stringach tworzą
> > > nowe instancje.
> > 
> > 
> > Ale chcieliśmy zwiększyć wydajność, nie zmniejszyć ;-)
> 
> Zacytuję klasyka: "serwery są teraz tanie". :)

:-)

Niby tak, ale w pewnym momencie trafiamy na poziom googlo facebooka
i takie ilości serwerów już tak tanie nie są:) Albo biolog napisał 
sibie na stringach przetwarzanie DNA i mi klaster zapycha...

A na poważnie, dlaczego string ma być immutable? 
Przecież moge chcieć tworzyć string literka po literce. 
Mogę chcieć zrobić jakieś operacja na nim, 
std::sort czy std::next_permutation
W tym wypadku będą(?) miał metodę która mi to wywala wynik
jako string. 
Bawiłem się chwilę (czysto rozrywkowo) c#, i tam literki stringa 
są immutable. Więc waliłem .ToCharArray(), robiłem swoje i 
konstruowałem nowego stringa. 
Pomijając wydajność, było to też brzydkie. 
std::string nie służy tylko do trzymania napisu, ale 
i przetwarzania, składania.   

Ale od drugiej strony, jakie zalety ma niezmienny string? 
Szybkie googlanie podaje powody, które można załatwić
const, albo są specyficzne dla określonego jezyka (np cachowanie
hashy stringów, bo są często używane).

pzdr
bartekltg 
Technical Details
Message-ID: <da509e00-e7ff-49bb-8870-b77b25bcc560@googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin3!goblin.stu.neva.ru!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!z50no1656120qtj.0!news-out.google.com!r5ni996qtc.1!nntp.google.com!z50no1656118qtj.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
References: <or4v67$ene$1@node1.news.atman.pl> <72ac4d9c-806c-4c0d-9d17-e6a1bca634cb@googlegroups.com> <148be543-e417-4b7b-aaa1-5fad87fe41bd@googlegroups.com> <137swhz7qzvw7.dlg@tyczka.com> <6a1a94c7-2d75-4569-8fae-574fb23c919e@googlegroups.com> <d73024b7-92e0-49f9-b827-bfc7b639739b@googlegroups.com> <73ec442f-1a8b-43fc-a06f-a5534a6f3438@googlegroups.com>

Show Full Headers
Complete Article Headers
X-Received: by 10.55.170.83 with SMTP id t80mr10762004qke.20.1507599355612;        Mon, 09 Oct 2017 18:35:55 -0700 (PDT)
X-Received: by 10.31.179.8 with SMTP id c8mr549347vkf.18.1507599355569; Mon, 09 Oct 2017 18:35:55 -0700 (PDT)
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin3!goblin.stu.neva.ru!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!z50no1656120qtj.0!news-out.google.com!r5ni996qtc.1!nntp.google.com!z50no1656118qtj.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.lang.c
Date: Mon, 9 Oct 2017 18:35:55 -0700 (PDT)
In-Reply-To: <73ec442f-1a8b-43fc-a06f-a5534a6f3438@googlegroups.com>
Complaints-To: groups-abuse@google.com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=89.70.120.200; posting-account=CvUQzQoAAABvVQmR58QmR6N4Cev1qhAS
NNTP-Posting-Host: 89.70.120.200
References: <or4v67$ene$1@node1.news.atman.pl> <72ac4d9c-806c-4c0d-9d17-e6a1bca634cb@googlegroups.com> <148be543-e417-4b7b-aaa1-5fad87fe41bd@googlegroups.com> <137swhz7qzvw7.dlg@tyczka.com> <6a1a94c7-2d75-4569-8fae-574fb23c919e@googlegroups.com> <d73024b7-92e0-49f9-b827-bfc7b639739b@googlegroups.com> <73ec442f-1a8b-43fc-a06f-a5534a6f3438@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <da509e00-e7ff-49bb-8870-b77b25bcc560@googlegroups.com>
Subject: Re: Zabrali kopiowanie przy zapisie...
From: bartekltg <bartekltg@gmail.com>
Injection-Date: Tue, 10 Oct 2017 01:35:55 +0000
Lines: 60
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit