我知道这是一个非常模糊的问题,可能措辞严厉,但我是c ++的初学者,并且一直看到这个(BTW我从某人的帖子中复制了这段代码):
if ( contents[i].size() >= 5 ) {
for ( unsigned int j=3; j<4; ++j ) {
double value = contents[i][j];
contents[i][j] = 0.;
}
}
“[i][j]
”部分在contents[i][j] = 0.;
中的含义是什么?我熟悉只使用一个[i]
,但我从未使用过两个......有人可以告诉我使用1 [i]
与使用[i][j]
有什么不同以及它意味着什么使用[i][j]
?
对于模糊的问题感到抱歉,但我找不到答案。感谢
答案 0 :(得分:2)
Uncaught SyntaxError: embedded: Unexpected token (7:18)
5 | var Hello = React.createClass({
6 | render: function() {
> 7 | return <div>{</div>;
| ^
8 | }
9 | });
最有可能存储一个2D数组:一个数组数组(可能是content
,感谢@owacoder的注释)。
std::vector< std::vector<double> >
访问contents[i]
的{{1}}数组,其本身为i
,然后contents
访问std::vector<double>
'存储在contents[i][j]
中的j
数组的元素。
答案 1 :(得分:1)
答案 2 :(得分:0)
如果您有1d数组,则使用[i]
访问第i个元素。
如果您有一个二维数组,即一个矩阵,则可以使用[i][j]
访问第i行和第j列中的元素。
答案 3 :(得分:0)
通常,contents[i]
表示容器的第i个元素(例如数组),但它可以表示设计者想要的意思。如果你自己编写一个类,你可以为该类编写operator[]
来做任何你想做的事情 - 如果你让它做任何事情而不是返回对容器的第i个元素的引用,那么必须处理你的代码会诅咒你的名字。
所以contents[i][j]
表示contents. For example,
内容might be an array of arrays of
int (often called a 2-dimensional array), or a
vector of arrays of
mYClass , or a
vector {{的第i个元素的第j个元素1}} myContainer of
myContainer , or a
myOtherContainer` ...
答案 4 :(得分:0)
“双下标”实际上是两个单个下标。第二个下标适用于第一个下载的任何对象。
所以contents[i][j]
我们有:
contents; // object taking subscript (array, vector etc...)
如果我们下标该对象以访问其内容,我们得到另一个也取下标的对象:
contents[i]; // another object taking subscript
因此,您通常可以找到应用于 vector 的“双下标”,其中包含向量元素。
// a vector that contains vectors that each contain doubles
std::vector<std::vector<double>> contents;
然后:
contents; // returns a vector of vectors to doubles
contents[i]; // returns a vector of doubles
contents[i][j]; // returns a double
用于建模二维数据。