我在分析以下代码时遇到问题:

 for (int argI = 1; argI < args_.size(); ++argI) //size(): Return the number of
 {                                       //arguments.
      argListString += ' ';         //Space into string
      argListString += args_[argI]; //new argument into string

      if (args_[argI][0] == '-')    // ????
      {
           const char *optionName = &args_[argI][1];   //????

我的问题是标有????的行。当我查找对象args_时,它的类型为stringList,而stringListList<T>的templateclass。 List<T> ist定义为
Template<class T>
class Foam::List< T >
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bounds checking, etc. Storage is allocated on free-store during
construction.

因此,如果args_是一维数组,为什么在415和417行中像二维数组一样对其进行访问?

问候
力量

最佳答案

它是 vector /字符串列表。字符串是一个字符序列。因此,索引运算符([])可能会提供对字符串的单个字符的访问。

为此,415检查字符串的第一个字符,并且417从第二个字符到结尾访问子字符串。

09-06 16:02