"צריך ללמוד איך בונים את ה-ADT שב-STL לפני שמשתמשים בהם"
ממש לא. חצי מהקוד הוא בטח טיפול במקרי קצה, ואין שום סיבה שמתכנת ישקיע
את זמנו בפתרון בעיה שכבר נפתרה ע"י מומחים מצויינים בתחום (אני לא חושב
שתחלוק על כך שרוג-ווייב הם מומחים, אם כי ניתן לחלוק על החלטות טכניות שלהם
בעיצוב
STL, כמובן)
כל המטרה ב-
STL היא
שלא תצטרך לכתוב הכל בעצמך.
"וזה נכון פחות או יותר לגבי כל ספרייה שאתה משתמש בה - צריך
להיות לך הידע לבנות אותה בעצמך"
שוב, כל המטרה בספריה סגורה המספקת ממשק מסויים הוא שתוכל להתייחס
רק
לממשק כקופסה שחורה, בלי לדעת דבר על היישום(קו"ח שלא ליישם את כל העסק
לבד)
כמובן שברגע שיש לך ידע כללי בתכנות, תהיה מסוגל, באופן תיאורטי, לכתוב כל
ספריה כזו לבד, לאחר המחקר הנדרש - אבל לא אומר שאתה צריך לעשות את זה
בפועל!
זה בדיוק העניין עם דוגמת ה-new. אני לא יודע ולא אכפת לי מה קורה כשאני עושה
new, מה גם שזה תלוי במהדר ובמערכת ההפעלה שלי, ככה שאין בכלל תשובה
יחידה לשאלה. מצד שני, נחמד לדעת פרטים כאלה ואחרים עליו. (לדוגמה: האם
מערכת ההפעלה תבצע דפרגמנטציה של הזכרון במידה ויש מספיק זכרון, אבל לא
רציף? אישית, לי אין מושג, למרות ששמעתי יש מערכות שעושות את זה
)