2013-12-20 16 views
1

您可以像訪問任何數組或容器類一樣訪問字符串,例如someString [0]。我創建了一個字符串矢量,並且爲每個字符串計算每個字符,例如someVector [0] .unamedstring [0]。我怎樣才能做到這一點?如何使用偏移量運算符訪問字符串的字符,並且該字符串位於字符串的向量中?

for(int i = 0; i < x.size(); ++i) 
     { 
      for (int j = 0; j < x[i].size(); ++j) 
      { 
      if(isspace(x[i].[j])//this produces an error; how to access this character? 
      { 

//more code.... 
+0

請注意,如果您插入到「vector」,則此引用可能會失效。 –

回答

0

您有正確的想法。您可以訪問它,你會多維數組:

for(int i = 0; i < x.size(); ++i) 
     { 
      for (int j = 0; j < x[i].size(); ++j) 
      { 
      if(isspace(x[i][j])//this produces an error; how to access this character? 
      { 

//more code.... 
3

x[i]給你的字符串,然後你想索引與j成字符串。所以你只是做x[i][j]

你的做法像someVector[0].unamedstring[0]的想法是錯誤的,因爲someVector[0]是字符串本身。 .unamedstring將嘗試訪問字符串的成員。

+0

好的,所以你說我想在我需要使用2維向量語法時使用類語法。涼。謝謝。 – user2904033

+0

@ user2904033我覺得你很困惑。 'someVector [0]'給你第一個字符串對象,這當然是類類型('std :: string'是一個類)。然後將運算符'[]'應用於該對象。這個運算符有一個完整的函數名稱,您可以使用:'operator []'。也就是說,你可以做'someVector [0] .operator [](0)',但那不是很漂亮嗎?使用'[]'運算符是一個更簡潔的語法。 –

+0

@ user2904033另外,如果有幫助,不要忘記接受答案。 –