From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,703c4f68db81387d X-Google-Thread: 109fba,703c4f68db81387d X-Google-Thread: 115aec,703c4f68db81387d X-Google-Thread: f43e6,703c4f68db81387d X-Google-Attributes: gid103376,gid109fba,gid115aec,gidf43e6,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news4.google.com!news.glorb.com!blackbush.cw.net!cw.net!feed.news.tiscali.de!news.belwue.de!news.tu-darmstadt.de!tsicnews.teliasonera.com!news.otenet.gr!news.grnet.gr!newsfd02.forthnet.gr!not-for-mail From: Ioannis Vranos Newsgroups: comp.lang.ada,comp.lang.c++,comp.realtime,comp.software-eng Subject: Re: Teaching new tricks to an old dog (C++ -->Ada) Date: Thu, 24 Mar 2005 03:22:38 +0200 Organization: FORTHnet S.A., Atthidon 4, GR-17671 Kalithea, Greece, Tel: +30 2109559000, Fax: +30 2109559333, url: http://www.forthnet.gr Message-ID: <1111627358.387482@athnrd02> References: <4229bad9$0$1019$afc38c87@news.optusnet.com.au> <1110032222.447846.167060@g14g2000cwa.googlegroups.com> <871xau9nlh.fsf@insalien.org> <3SjWd.103128$Vf.3969241@news000.worldonline.dk> <87r7iu85lf.fsf@insalien.org> <1110052142.832650@athnrd02> <1110284070.410136.205090@o13g2000cwo.googlegroups.com> <395uqaF5rhu2mU1@individual.net> <1110329098.642196@athnrd02> <1110361741.551255@athnrd02> <422edaec$0$26554$9b4e6d93@newsread4.arcor-online.net> <1111464133.508323@athnrd02> <423fe9df$0$11476$9b4e6d93@newsread2.arcor-online.net> <1111521825.653841@athnrd02> <424094b0$0$11481$9b4e6d93@newsread2.arcor-online.net> <1111568404.687226@athnrd02> <42416659$0$11476$9b4e6d93@newsread2.arcor-online.net> <1111611226.253249@athnrd02> <4241f47a$0$24073$9b4e6d93@newsread4.arcor-online.net> NNTP-Posting-Host: athnrd02.forthnet.gr Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Trace: athprx02.forthnet.gr 1111627358 10944 193.92.150.73 (24 Mar 2005 01:22:38 GMT) X-Complaints-To: abuse@forthnet.gr NNTP-Posting-Date: Thu, 24 Mar 2005 01:22:38 +0000 (UTC) User-Agent: Mozilla Thunderbird 1.0 (Windows/20041206) X-Accept-Language: en-us, en In-Reply-To: <4241f47a$0$24073$9b4e6d93@newsread4.arcor-online.net> Cache-Post-Path: newsfd02!unknown@ppp16-adsl-51.ath.forthnet.gr Xref: g2news1.google.com comp.lang.ada:9857 comp.lang.c++:46952 comp.realtime:1651 comp.software-eng:5255 Date: 2005-03-24T03:22:38+02:00 List-Id: Georg Bauhaus wrote: > Door_Count array access is faster because while it acts like > std::map, it is really an array. > > Omitting the association of the indexing number numbers (-2 .. 52) with > the floors for the moment, these tests should demonstrate: > > #include > #include // GNU: #include , __gnu_cxx::hash_map > #include > #include > > #define M 55 // array size > #define N 10000 // assigments > #define R 5000 // runs > > > struct Test { // compare random access to keyed access > > void arrays() { > int a[M]; > for (int k = 0; k < N; ++k) > a[k % M] = k; > } > > void valarrays() { > std::valarray a(M); > for (int k = 0; k < N; ++k) > a[k % M] = k; > } > > void vectors() { > std::vector a(M); > for (int k = 0; k < N; ++k) > a[k % M] = k; > } > > void maps() { > std::map a; > for (int k = 0; k < N; ++k) > a[k % M] = k; > } > > void hash_maps() { > std::hash_map a; > for (int k = 0; k < N; ++k) > a[k % M] = k; > } > > }; > > int main() > { > Test t; > > for (int run = 0; run < R; ++run) > t.arrays(); > // t.valarrays(); > // t.vectors(); > // t.maps(); > // t.hash_maps(); > > return 0; > } I am not sure what you mean with the above, perhaps to use the facilities of to measure their performance? Of course vector is faster than map. > C# does provide fixing arrays. You mean it can use signed indices? Look, just to be technically accurate, C++ can also use negative indices, but I avoided mentioning it because I considered it an unnecessary feature (again why then someone did not provide an array container with signed indices as the default, since it can be done?). But here is an example: #include #include int main() { using namespace std; vector vec(10); vector::iterator pi= vec.begin()+4; // Makes vec[2]== 4. pi[-2]= 4; pi[1]= 3; pi[0]= 9; //built in array int somearray[4]; int *p= somearray+2; //Makes somearray[1]== 9 p[-1]= 9; } > I think we can't buy high speed computing components from the > producers of .NET. However, Fortran for .NET is available. (Doesn't mean > the producers of libraries will use non-default index value in Fortran > code.) > So is APL. In any case, with C++/CLI, C++ becomes the systems programming language of .NET. >> Just to be technically accurate. C++ has fixed size built in arrays. >> It doesn't provide range checking for them though. > > > OK. And lets see what happens when the C99 arrays will be adopted. Do you mean C99's built in Variable Length Arrays (VLAs)? I do not think they will be adopted in C++. -- Ioannis Vranos http://www23.brinkster.com/noicys