[英]How to print contents in vector
我是C ++的新手。 我想在“向量”中打印一些值。
vector<GLubyte> m_coneIndices;
m_coneIndices.resize(m_bodyIndexCount + m_diskIndexCount);
vector<GLubyte>::iterator index = m_coneIndices.begin();
// Body triangles
for (int i = 0; i < coneSlices * 2; i += 2) {
*index++ = i;
*index++ = (i + 1) % (2 * coneSlices);
*index++ = (i + 3) % (2 * coneSlices);
}
// Disk triangles
for (int i = 1; i < coneSlices * 2 + 1; i += 2) {
*index++ = diskCenterIndex;
*index++ = i;
*index++ = (i + 2) % (2 * coneSlices);
}
這就是將值存儲在“向量”中的方式。 我試過像
cout << "indices"<< "\n";
for (int i=0; i<(coneSlices * 2 ); i+=2) {
cout << m_coneIndices[i] << ' ' << m_coneIndices[i+1] << ' ' << m_coneIndices[i+2] << ' ' << "\n";
}
然后打印出一些垃圾值。 讓我知道這段代碼有什么問題。
使用push_back
添加到向量
vector<GLubyte> m_coneIndices;
// Body triangles
for (int i = 0; i < coneSlices * 3; i += 3) {
m_coneIndices.push_back(i);
m_coneIndices.push_back((i + 1) % (2 * coneSlices));
m_coneIndices.push_back((i + 3) % (2 * coneSlices));
}
// Disk triangles
for (int i = 1; i < coneSlices * 2 + 1; i += 2) {
m_coneIndices.push_back(diskCenterIndex);
m_coneIndices.push_back(i);
m_coneIndices.push_back((i + 2) % (2 * coneSlices));
}
打印:
cout << "indices"<< "\n";
for (size_t i = 0; i< m_coneIndices.size(); i+=3) {
cout << m_coneIndices[i*3] << ' ' << m_coneIndices[i*3+1] << ' ' <<
m_coneIndices[i*3+2] << ' ' << "\n";
}
我做得對。 我更改了代碼
for (int i=0; i<(coneSlices * 2 ); i+=2) {
printf("%d ",(int)m_coneIndices[i]);
}
並且有效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.