🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Ciemna strona C++

#267855
From: Seweryn Habdank-Wojewódzki
Date: Wed, 05 Dec 2007 10:41
60 lines
3737 bytes
Witam

Sektor van Skijlen wrote:

>> > Do tego stopnia, że nie da się
>> > zrobić standard-conformant listy jednokierunkowej (pojedynczo
>> > wiązanej), a niektóre ciołki (jak np. autor języka D) nie rozumie,
>> > dlaczego do sprawdzania czy string jest pusty trzeba robić if (
>> > s.enpty() ), zamiast normalnie if ( s.size() ).
> 
>> To dlaczego dla sprawdzenia czy w mapie jest klucz trzeba robić
>> m.count(keyVal) zamiast m.has_key(keyVal)? Dlaczego "niektóre ciołki"
>> takie jak członkowie komitetu nie rozumieją?
> 
> Zastanów się najpierw, o co właściwie pytasz:
> 1. Dlaczego wybrano nazwę 'count', a nie 'has_key'
> 2. Dlaczego 'count' nie ma aliasa o nazwie 'has_key'
> 
> Mam nadzieję, że pytasz o #2, bo pytanie o #1 jest głupie z zasady.
> 
> Na to wytłumaczenie jest takie, że ludzie mają często nieuzasadnione opory
> przed robieniem "aliasów" nazw. I tak pewnie komitet z trudem przebolał
> pozostawienie basic_string::length jako alias do size. I tak niestety
> zawsze będzie, mimo negatywnych doświadczeń ntt. z przeszłości (w wyniku
> czego np. jedyna funkcja w bibliotece standardowej języka C (I to również
> w ostatnim standardzie!), za pomocą której można porównać dwa stringi to
> strcmp, znana z nielogicznego, błędogennego i nieczytelnego interfejsu).
> 
> Ja się z tym nie zgadzam, i uważam, że zrobienie funkcji has_key:
> 
> bool has_key( const KeyType& k ) { return count( k ) > 0; }

To chyba jest nieoptymalne.

Po co liczyć wystąpienia key? Lepiej jest poszukać _pierwszego_ wystąpienia
klucza tu jakiś find będzie szybszy.

template < typename Map >
bool has_key (Map const & m, typename Map::key_type const & key)
{
    return (m.find(key) != m.end());
}

A jeśli mowa o nazwach czegoś co sprawdza długość, to:

Py ma len.
Matlab length i size wynik jest różny w przypadku odwołania do macierzy.
R length i size
J size
++ size
# size

Tak więc size w mojej próbie statystycznej jest najmocniejsze i IMHO
najbardziej generyczne, bo czym jest length dla macierzy?

Pozdrawiam.

-- 
|\/\/|   Seweryn Habdank-Wojewódzki
 \/\/
Technical Details
Message-ID: <fj5uc0$mbn$1@news.vectranet.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.vectranet.pl!not-for-mail
References: <fghgeo$spf$1@nemesis.news.tpi.pl> <fghsb4$kpq$1@news.dialog.net.pl> <fgo4c7$mtu$1@news.vectranet.pl> <20071106073039.433f4934@Vorago> <fgqn9m$74j$2@news.vectranet.pl> <618565031.20071107113041@pkierski.net> <fgt6sh$jov$1@news.vectranet.pl> <fgtb6j$nur$1@news.vectranet.pl> <fgv6ba$k14$1@bozon2.softax.pl> <fgvkne$u3b$1@news.vectranet.pl> <fh1tjd$dtt$1@bozon2.softax.pl> <fh2lj6$qkh$1@news.vectranet.pl> <fha3as$pap$1@bozon2.softax.pl> <fhaj8u$e02$1@news.vectranet.pl> <fhf09d$ohq$1@bozon2.softax.pl> <fhfi9l$640$1@news.vectranet.pl> <fhurmu$5d9$1@bozon2.softax.pl> <fhv020$8k1$1@news.vectranet.pl> <fi1bs4$nn3$1@bozon2.softax.pl> <fi27ds$gt1$1@kujawiak.man.lodz.pl> <fi458p$fmv$1@bozon2.softax.pl> <fi9ckc$2u5$1@kujawiak.man.lodz.pl> <fimb7n$80v$1@bozon2.softax.pl> <fj5k6j$r3e$1@kujawiak.man.lodz.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.vectranet.pl!not-for-mail
From: Seweryn Habdank-Wojewódzki <shw_mail@wp.pl>
Newsgroups: pl.comp.lang.c
Subject: Re: Ciemna strona C++
Date: Wed, 05 Dec 2007 11:41:00 +0100
Organization: VectraNET - http://www.vectranet.pl
Lines: 61
Message-ID: <fj5uc0$mbn$1@news.vectranet.pl>
References: <fghgeo$spf$1@nemesis.news.tpi.pl> <fghsb4$kpq$1@news.dialog.net.pl> <fgo4c7$mtu$1@news.vectranet.pl> <20071106073039.433f4934@Vorago> <fgqn9m$74j$2@news.vectranet.pl> <618565031.20071107113041@pkierski.net> <fgt6sh$jov$1@news.vectranet.pl> <fgtb6j$nur$1@news.vectranet.pl> <fgv6ba$k14$1@bozon2.softax.pl> <fgvkne$u3b$1@news.vectranet.pl> <fh1tjd$dtt$1@bozon2.softax.pl> <fh2lj6$qkh$1@news.vectranet.pl> <fha3as$pap$1@bozon2.softax.pl> <fhaj8u$e02$1@news.vectranet.pl> <fhf09d$ohq$1@bozon2.softax.pl> <fhfi9l$640$1@news.vectranet.pl> <fhurmu$5d9$1@bozon2.softax.pl> <fhv020$8k1$1@news.vectranet.pl> <fi1bs4$nn3$1@bozon2.softax.pl> <fi27ds$gt1$1@kujawiak.man.lodz.pl> <fi458p$fmv$1@bozon2.softax.pl> <fi9ckc$2u5$1@kujawiak.man.lodz.pl> <fimb7n$80v$1@bozon2.softax.pl> <fj5k6j$r3e$1@kujawiak.man.lodz.pl>
Reply-To: shw_mail@wp.pl
NNTP-Posting-Host: 078088193244.osw.vectranet.pl
Mime-Version: 1.0
X-Trace: news.vectranet.pl 1196850369 22903 78.88.193.244 (5 Dec 2007 10:26:09 GMT)
X-Complaints-To: usenet@news.vectranet.pl
NNTP-Posting-Date: Wed, 5 Dec 2007 10:26:09 +0000 (UTC)
User-Agent: KNode/0.10.5
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit