我在分析以下代码时遇到问题:
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
,而stringList
是List<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从第二个字符到结尾访问子字符串。