Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 2

Απαντήσεις στις ερωτήσεις 14

Απαντήσεις στις ερωτήσεις 14

14.01 Ποιες είναι οι κύριες διαφορές μεταξύ ενός πίνακα (array) και ενός C++
διανύσματος (vector);

Μερικές από τις κύριες διαφορές μεταξύ πινάκων και C++ διανυσμάτων είναι:

α. Ένας πίνακας δηλώνεται ως:

string a[8]; // a είναι πίνακας των 8 συμβολοσειρών

ενώ ένα διάνυσμα δηλώνεται ως:

vector<string> v(8); //v είναι ένα διάνυσμα των 8

// συμβολοσειρών

β. Ο τελεστής ανάθεσης καθορίζεται για τα διανύσματα αλλά όχι για τους


πίνακες:

v = w; // εκχωρεί όλα τα στοιχεία του vector w στο v

γ. Οι τελεστές σύγκρισης καθορίζονται για τα διανύσματα αλλά όχι για τους


πίνακες:

if(v == w) // έγκυρο, εάν τα δύο vectors είναι ίσα

if(v < w) // έγκυρο, χρησιμοποιεί τη λεξικογραφική

// διάταξη των διανυσμάτων

δ. Η μέθοδος 0 είναι διαθέσιμη για τα διανύσματα αλλά όχι για τους πίνακες:

int n = v.size(); // ο αριθμός στοιχείων στο vector v

ε. Η μέθοδος at() είναι διαθέσιμη για τα διανύσματα αλλά όχι για τους
πίνακες:

string v8 = v.at(8); // το στοιχείο στη θέση 8

Εάν το στοιχείο δεν υπάρχει, δημιουργείται μια εξαίρεση λάθους, «εκτός


περιοχής».

14.02 Πως συσχετίζονται οι επαναλήπτες (iterators) διανυσμάτων με τους


δείκτες πινάκων;
Απαντήσεις στις ερωτήσεις 14

Μερικές από τις κύριες ομοιότητες μεταξύ των δεικτών πινάκων και των
επαναληπτών διανυσμάτων είναι:

α. Και οι δύο παρέχουν την άμεση πρόσβαση ανάγνωσης γραφής (read-write)


στα στοιχεία:

x = a[3]; // εκχωρεί στο x το στοιχείο του a

// με δείκτη 3

x = *it; // εκχωρεί στο x το στοιχείο που δείχνει

// ο it πόιντερ

a[3] = 44; // εκχωρεί το 44 στο στοιχείο του

// πίνακα a με αριθμό 3

*it = 44; // εκχωρεί το 44 στο στοιχείο που δείχνει

// ο it πόιντερ

β. Και οι δύο μπορούν να αυξηθούν και να μειωθούν.

γ. Και οι δύο μπορούν να χρησιμοποιηθούν ως βάση για τη σχετικοποίηση


θέσεων:

x = a[i+3]; // εκχωρεί στο x το 3o στοιχείο του a

// μετά το a[i]

x = *(it+3); // εκχωρεί στο x το 3o στοιχείο του a

// μετά το *it.

You might also like