Article View: pl.comp.lang.c
Article #309465Re: Zabrali kopiowanie przy zapisie...
From: bartekltg
Date: Tue, 10 Oct 2017 01:35
Date: Tue, 10 Oct 2017 01:35
50 lines
3719 bytes
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-mailReferences:
<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