2012-05-08 66 views
3

我正在研究一個Boggle遊戲解算器,它將讀取文本文件(板)的行。vector <string> or vector <vector <char>>?

如果我應該使用vectorstring s或vector矩陣char s,我一直在來回走動。我認爲vectorchars會更容易訪問,因爲它將是myvec[y][x]其中vectorstring會要求我使用string.at()函數。

我不知道如果我應該分析每行到char s或將行作爲string並根據需要訪問每個char,哪個性能會更好。任何建議我應該做哪一個?解釋爲什麼會有幫助。

+4

你也可以在字符串中使用'[]'。 'at'提供越界檢查。 – chris

+0

@chris哦,從來沒有嘗試過用字符串。好吧,這幾乎解決了我的問題,因爲一個字符串向量會更容易。謝謝。 – LF4

+2

字符串比char數組好得多。如果可以,請始終選擇它們。只是你知道,語法可以通過重載'operator []'的字符串類來實現。 – chris

回答

4

正如已評論的那樣,您可以在字符串上使用operator[],就像vector s或陣列一樣。

在適當優化,服務表現將是大約相同的用於vector<char>作爲string - 兩者都是在引擎蓋下的陣列,並且在這兩種情況下operator[]將有效地一個結構構件連接和間接查找。他們甚至幾乎提供methodssame set

選擇哪一個讓你的代碼更易讀/簡單。

相關問題