当我使用下面的代码时,我在对的第二项之前得到一个mem地址(?),如下所示: 666, 0x6090e8 667 666, 0x6090e8 667 666, 0x6090e8 667。
我做错了什么?
std::vector<std::vector<std::vector<std::pair<int,int> > > > total;
int main()
{
total.resize(10);
for (int i = 0; i < 10; ++i)
{
total[i].resize(10);
}
for (int i = 0; i < 10; i++)
{
total[0][0].push_back(std::make_pair(666,667));
}
for (int i=0; i<3; i++)
{
std::cout << total[0][0][i].first << ", " <<
std::cout << total[0][0][i].second << '\t';
}
std:: cout << std::endl;
}
答案 0 :(得分:3)
std::cout << total[0][0][i].first << ", " <<
std::cout << total[0][0][i].second << '\t';
由于第一行末尾的<<
,您将std::cout
(在第二行)输出到cout
,就像您键入{{1}一样}}。显然你的编译器有一个重载或转换,导致它显示一个内存地址(虽然它可能无法在其他编译器上编译)。
用分号替换它,或从第二行删除std::cout << std::cout;
。
答案 1 :(得分:0)
有关
i
你可能意味着
var inputs = document.querySelectorAll("input[type=text]")
for (i = 0; i < inputs.length; i++) {
inputs[i].addEventListener('click', function(i) {
inputs[i].style.width = "500px";
}.bind(this, i));
}
答案 2 :(得分:0)
您使用过std::cout << total[0][0][i].first << ", " <<
。该行末尾的额外<<
(并且没有分号)最终将下一个std::cout
输出到您的第一个std::cout
语句中。
它的行为如下:std::cout << std::cout
导致显示地址。
您可能想要使用:
而是std::cout << total[0][0][i].first << ", ";
。