Kiinteän koon std::array
Turvallinen korvaaja C-taulukoille
Kiinteän koon std::array on ilmainen C++ Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu C++ Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. C++ Academy-kurssilla on yhteensä 4 oppituntia.
Turvallinen C-taulukko
std::array<T, N> on kiinteän kokoinen taulukko, joka tuntee oman kokonsa ja toimii asianmukaisen säiliön tavoin. Ota käyttöön <array>.
#include <iostream>
#include <array>
int main() {
std::array<int, 3> a = {1, 2, 3};
std::cout << a[0] << " " << a.size() << "\n";
}Tuntee kokonsa
Toisin kuin raakamatriisi, joka muuttuu osoittimeksi, std::array ilmoittaa pituutensa aina funktion size() avulla.
#include <iostream>
#include <array>
int main() {
std::array<double, 4> a{};
std::cout << a.size() << "\n"; // 4
}Aluepohjainen for-silmukka
Koska kyseessä on varsinainen säiliö, voitte käydä sen läpi aluepohjaisella for-silmukalla.
#include <iostream>
#include <array>
int main() {
std::array<int, 3> a = {10, 20, 30};
for (int x : a) std::cout << x << " ";
std::cout << "\n";
}Rajat tarkistava at()
at(i) heittää poikkeuksen std::out_of_range, jos indeksi on virheellinen, kun taas operator[] ei tarkista rajoja. Valitkaa menetelmä turvallisuustarpeiden mukaan.
#include <iostream>
#include <array>
int main() {
std::array<int, 2> a = {1, 2};
try { a.at(5); }
catch (const std::out_of_range&) { std::cout << "out of range\n"; }
}front, back ja data
Käteviä käyttöfunktioita: front() ja back() palauttavat ensimmäisen ja viimeisen alkion, ja data() antaa C-rajapintojen tarvitseman raakaosoittimen.
#include <iostream>
#include <array>
int main() {
std::array<int, 3> a = {7, 8, 9};
std::cout << a.front() << " " << a.back() << "\n";
}Kopioitavissa arvona
std::array voidaan kopioida suoraan operaattorilla =, jolloin jokainen alkio kopioidaan. Raakataulukot sen sijaan muuttuvat osoittimiksi.
#include <iostream>
#include <array>
int main() {
std::array<int, 3> a = {1, 2, 3};
std::array<int, 3> b = a; // full copy
b[0] = 99;
std::cout << a[0] << " " << b[0] << "\n"; // 1 99
}Toimii algoritmien kanssa
Standardialgoritmit hyväksyvät std::array-iteraattorit. Tässä lajittelemme taulukon.
#include <iostream>
#include <array>
#include <algorithm>
int main() {
std::array<int, 4> a = {4, 1, 3, 2};
std::sort(a.begin(), a.end());
for (int x : a) std::cout << x << " ";
std::cout << "\n";
}Täyttäminen ja vertailu
fill(value) asettaa jokaisen alkion arvoksi annetun arvon. std::array tukee myös alkioittaista vertailua operaattorilla ==.
#include <iostream>
#include <array>
int main() {
std::array<int, 3> a{};
a.fill(5);
std::array<int, 3> b = {5, 5, 5};
std::cout << (a == b) << "\n"; // 1
}Koko on osa tyyppiä
Pituus N on määritelty osaksi tyyppiä, joten funktion, joka ottaa vastaan tyypin std::array<int,3>, parametriksi ei voi antaa koon 4 taulukkoa. Myöhemmin std::span auttaa tässä.
Pinoallokointi
std::array tallentaa alkionsa suoraan itseensä, yleensä pinoon, eikä varaa muistia keosta. Siksi se on nopea ja ennakoitava kiinteäkokoiselle datalle.
Taulukko vai vector
Käyttäkää std::array-säiliötä, kun koko tiedetään käännösaikana ja se pysyy muuttumattomana. Käyttäkää std::vector-säiliötä, kun koko voi muuttua ajonaikana.
Pikatarkistus
Tarkistakaa, mitä opitte std::array-tyypistä.
Kertaus
Opitte seuraavat asiat std::array-tyypistä:
- Se on kiinteäkokoisen ja koon tunteva säiliö, joka ei varaa muistia keosta.
at()tarkistaa rajat, mutta[]ei.- Sen voi kopioida ja sitä voi verrata, ja se toimii algoritmien kanssa.
- Koko
Non osa tyyppiä.
Opi C++ tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 51
- Oppitunnit
- 203
Usein kysytyt kysymykset
Onko oppitunti ”Kiinteän koon std::array” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa C++ Academy-oppimispolun 3 oppituntia, myös oppitunnin “Kiinteän koon std::array”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. C++ Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Kiinteän koon std::array”?
Turvallinen korvaaja C-taulukoille Harjoittelet C++ Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni C++ Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin C++ Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.
Kuinka kauan ”Kiinteän koon std::array”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä C++ Academy-oppitunnilla?
Kyllä. Jokainen C++ Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Kiinteän koon std::array
- std::span-perusteet
- Span-näkymien välittäminen funktioille
- Rajojen tarkistus ja alispanit