std::array med fast størrelse
En sikker erstatning for C-arrays
std::array med fast størrelse er en gratis C++ Academy-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i C++ Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. C++ Academy-kurset indeholder 4 lektioner i alt.
Et sikkert C-array
std::array<T, N> er et array med fast størrelse, som kender sin egen størrelse og opfører sig som en rigtig container. Inkludér <array>.
#include <iostream>
#include <array>
int main() {
std::array<int, 3> a = {1, 2, 3};
std::cout << a[0] << " " << a.size() << "\n";
}Kender sin egen størrelse
Til forskel fra et råt array, der konverteres til en pointer, rapporterer std::array altid sin længde via size().
#include <iostream>
#include <array>
int main() {
std::array<double, 4> a{};
std::cout << a.size() << "\n"; // 4
}Rangebaseret for-løkke
Da det er en rigtig container, kan du iterere med en rangebaseret for-løkke.
#include <iostream>
#include <array>
int main() {
std::array<int, 3> a = {10, 20, 30};
for (int x : a) std::cout << x << " ";
std::cout << "\n";
}Grænsekontrolleret at()
at(i) kaster std::out_of_range ved et ugyldigt indeks, mens operator[] ikke kontrollerer det. Vælg ud fra dine sikkerhedskrav.
#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 og data
Praktiske adgangsfunktioner: front() og back() returnerer henholdsvis det første og det sidste element, mens data() giver en rå pointer til C-API'er.
#include <iostream>
#include <array>
int main() {
std::array<int, 3> a = {7, 8, 9};
std::cout << a.front() << " " << a.back() << "\n";
}Kan kopieres som værdi
std::array kopieres nemt med =, så hvert element kopieres, i modsætning til rå arrays, der konverteres til pointere.
#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
}Fungerer med algoritmer
Standardalgoritmer accepterer iteratorer fra std::array; her sorterer vi det.
#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";
}Udfyldning og sammenligning
fill(value) sætter hvert element, og std::array understøtter også elementvis sammenligning med ==.
#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
}Størrelsen er en del af typen
Længden N er indbygget i typen, så en funktion, der tager std::array<int,3>, ikke accepterer et array med størrelse 4. Her bliver std::span nyttig senere.
Allokering på stakken
std::array gemmer sine elementer inline, typisk på stakken, uden heap-allokering. Det gør det hurtigt og forudsigeligt til data med fast størrelse.
Array eller vector
Brug std::array, når størrelsen er kendt ved kompilering og er fast. Brug std::vector, når størrelsen kan ændre sig under kørsel.
Hurtig kontrol
Kontrollér din forståelse af std::array.
Opsummering
Du har lært om std::array:
- En container med fast størrelse, der kender sin størrelse, uden heap-allokering.
at()kontrollerer grænser;[]gør ikke.- Kan kopieres, sammenlignes og bruges med algoritmer.
- Størrelsen
Ner en del af typen.
Lær C++ med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 51
- Lektioner
- 203
Ofte stillede spørgsmål
Er lektionen “std::array med fast størrelse” gratis?
Ja — alle 3 lektioner i læringssporet C++ Academy, inklusive “std::array med fast størrelse”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. C++ Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “std::array med fast størrelse”?
En sikker erstatning for C-arrays Du øver dig i C++ Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på C++ Academy?
Der kræves ingen tidligere erfaring. C++ Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.
Hvor lang tid tager lektionen “std::array med fast størrelse”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne C++ Academy-lektion?
Ja. Alle C++ Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- std::array med fast størrelse
- Grundlæggende om std::span
- Videregivelse af spans til funktioner
- Grænser og subspans