Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: STL

Sivun loppuun

TeeVee [15.11.2005 18:57:10]

#

Morjens!

Tuossa selailin cppreferenceä ja katselin tuota Standard Template Librarya. Näytti erittäin laajalta ja monipuoliselta kokonaisuudelta näin päällepäin. Kyselisinkin seuraavia asioita:

1.Mihin itse olet tarvinnut STL:n ominaisuuksia ja mitä niistä?

2.Mistä olet opiskellut sen käyttöä?

3.Mihin tarkoituksiin se on käyttökelpoinen?

4.Onko järkevää käyttää voimavaroja tuon jättiläisen harjoitteluun?


Hieman kaipaan tietoa tästä osa-alueesta, kiitoksia vastauksista etukäteen!

Metabolix [15.11.2005 19:45:18]

#

1. En ole tarvinnut, kun olen tietämättömyyttäni tehnyt itse samanlaisia komponentteja. Parempi olisi ollut käyttää STL:ää :)
2. Siitä, mikä löytyy, kun kirjoittaa Googleen "STL tutorial", eli http://www.infosys.tuwien.ac.at/Research/Component/tutorial/prwmain.htm
3. Containerit helpottavat huomattavasti dynaamista datankäsittelyä jo heikosti osattuina. Muutenkin siellä on kaikenlaista pientä hyödyllistä.
4. Rajallisessa määrin kyllä. Ei sitä silti kannata elämäntehtäväkseen ottaa :) Hyvin selviät ilmankin sitä, mutta toisinaan se tosiaan säästää omaa koodia.

Template-funktioiden (ja eikä luokkienkin) käyttö kannattaa opetella aivan STL:stä riippumattomanakin. Siis tämä:

template <class Tyyppi>
Tyyppi Itseisarvo(Tyyppi Luku)
{
  if (Luku < 0)
    return -Luku;
  else
    return Luku;
}

Tuolle voi sitten antaa minkä tahansa tyyppisen muuttujan (int, float, jokin struct...), kunhan sille on määritelty nuo funktiossa käytetyt operaattorit.

Juice [15.11.2005 20:09:33]

#

1. Kaikkeen. Mieluummin käytän noita kuin keksin pyörää uudestaan. Usein STL:n komponentit ovat nopeampia kuin omat viritykset.
2. Bjarne-sedän kirja neuvoo.
3. Vektorit ovat erityisen kivoja.
4. Kyllä. Ei kannata keksiä pyörää uudestaan.

Heikki [15.11.2005 22:23:49]

#

1. No, vektorit ovat yleisin asia mitä STL.stä käytän. Eli lähinnä tuohon mihin vektoreita kätetään. Enemmänkin tekisi mieli opetella, jäänyt aivan liian vähälle.
2. Bjarne-sedeän kirjaa itsekkin kattelin keran kun se oli lainassa kirjastosta. Mutta silloin en kyllä ehtinyt tarpeeksi perehtymään, suunnitelmissa lainata joskus uudestaan.
3. Vektorit taas.
4. On!


Ps. On muuten omituinen nimi tuo vector, se kun ei liity mitenkään matemaattiseen vektoriin.

CyberianRat [16.11.2005 02:28:27]

#

1. On vaikea kuvitella että kirjoittaisin c++-ohjelman tai edes isomman luokan tai funktion, jossa en käyttäisi STL:ää. STL on osa C++:n metodiikkaa.

2. Ahkerimmassa käytössä on google ja sitä kautta löytyvät referenssiohjesivut. Herb Sutterin kirjat ovat antaneet näkemystä syvemmälle aiheeseen.

3. Kaikkeen, missä suinkin tarvitaan säiliöitä ja yleisiä algoritmeja niille.

4. Kyllä, jos C++:lla ohjelmointi kiinnostaa. Kaikkea ei tietenkään tarvitse opetella kerralla, käytössä oppii parhaiten. Jos aihe on uusi, voi olla hyödyllistä lukea jokin yleisluontoinen johdatus, jotta näkee mitä STL ylipäätään pitää sisällään.

TeeVee [16.11.2005 20:27:38]

#

Kiitoksia! Ehdottomasti haluan oppia C++:saa enemmän ja tehokkaasti! Onko kellään mitään suosikkitutoriaalia, tai CyberianRatin esittämää esittelyä STL:n toiminnasta?

Jesse Libertyn ohjelmointikirjassa on malleista (template) juttua, alan pakertamaan niiden parissa, ja muutenkin luokkien kanssa. Onko kellään mitään yksinkertaisia harjoitustehtäviä STL:n käyttöön liittyen, joiden avulla voisin oppia käytännössä aihealuetta?

Metabolix [16.11.2005 21:27:17]

#

No alkuun voit vaikka ottaa jonkin tulukkoja käyttävän ohjelmasi ja korvata taulukon STL:n vektorilla tai jollakin muulla sopivalla. Kunhan luet, mihin mikäkin containeri kelpaa, niin voit aina ohjelmoidessasi miettiä, josko jonnekin voisi tunkea sellaisen. Sitten voit aivan käytännössä, ei-teennäisestikin opetella niitä. Siitä se lähtee.

uffis [19.11.2005 21:46:04]

#

Jos joku kuvittelee ohjelmoivansa C++:aa ja käyttää merkkijonojen käsittelyyn merkkitaulukoita, on opin tietä vielä paljon edessä. Kannattaa aloittaa STL:n string-luokasta. Elämä (myös käyttäjien) helpottuu huomattavasti, kun ei tarvitse ihmetellä outojen ylivuoto- yms. bugien parissa.

Eipä C++:aa voi tuottavasti ilman STL:ää ohjelmoida, ellei kyse ole jostakin tietystä ympäristöstä, jossa sitä ei ole tarjolla. Sellaisiin kuuluu esimerkiksi Symbian-alusta.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta