使用数组中的值,包含多个向量
Working with values from array, containing multiple vectors
基本上我创建了一个包含两个向量的数组,我希望能够 change/output 值。我读过以下语法应该可以工作,但是当我 运行 程序时,它只是不断填满内存而不打印任何内容。
#include <iostream>
#include <array>
#include <vector>
int main() {
std::array<std::vector<float>, 2> endPieceV;
for (int i = 0; i < 20; i+2) {
endPieceV[0].push_back(i);
endPieceV[1].push_back(i*i+2);
}
std::cout << "Vector 1:" << std::endl;
for (int i = 0; i < endPieceV[0].size(); i++) {
std::cout << endPieceV[0][i] << " ";
}
std::cout << std::endl;
std::cout << std::endl;
std::cout << "Vector 2:" << std::endl;
for (int i = 0; i < endPieceV[0].size(); i++) {
std::cout << endPieceV[1][i] << " ";
}
system("pause");
return 0;
}
我不明白为什么它不开始打印,而是一直在加载?
这个循环计数器不正确:
for (int i = 0; i < 20; i+2)
您不会在此循环中递增 i
。
另一个潜在的错误是您使用了错误的向量作为循环计数器:
for (int i = 0; i < endPieceV[0].size(); i++) {
// ^ Wrong, should be 1
std::cout << endPieceV[1][i] << " ";
尽管您提到向量的大小相同,但这确实不是编写这样的循环的方法。
您没有在第一个循环中递增 i
for (int i = 0; i < 20; i+2) {
endPieceV[0].push_back(i);
endPieceV[1].push_back(i*i+2);
}
注意i+2
应该是i+=2
基本上我创建了一个包含两个向量的数组,我希望能够 change/output 值。我读过以下语法应该可以工作,但是当我 运行 程序时,它只是不断填满内存而不打印任何内容。
#include <iostream>
#include <array>
#include <vector>
int main() {
std::array<std::vector<float>, 2> endPieceV;
for (int i = 0; i < 20; i+2) {
endPieceV[0].push_back(i);
endPieceV[1].push_back(i*i+2);
}
std::cout << "Vector 1:" << std::endl;
for (int i = 0; i < endPieceV[0].size(); i++) {
std::cout << endPieceV[0][i] << " ";
}
std::cout << std::endl;
std::cout << std::endl;
std::cout << "Vector 2:" << std::endl;
for (int i = 0; i < endPieceV[0].size(); i++) {
std::cout << endPieceV[1][i] << " ";
}
system("pause");
return 0;
}
我不明白为什么它不开始打印,而是一直在加载?
这个循环计数器不正确:
for (int i = 0; i < 20; i+2)
您不会在此循环中递增 i
。
另一个潜在的错误是您使用了错误的向量作为循环计数器:
for (int i = 0; i < endPieceV[0].size(); i++) {
// ^ Wrong, should be 1
std::cout << endPieceV[1][i] << " ";
尽管您提到向量的大小相同,但这确实不是编写这样的循环的方法。
您没有在第一个循环中递增 i
for (int i = 0; i < 20; i+2) {
endPieceV[0].push_back(i);
endPieceV[1].push_back(i*i+2);
}
注意i+2
应该是i+=2