所以我最近开始学习C++,我试图弄清楚如何访问一个多维向量或者向量存储在其中的向量。我看遍了所有,我无法找到我正在寻找什么。我希望能够通过打印出来测试多维向量中每个向量的内容。此外,无论何时在每次迭代后尝试查看矢量的大小,每次迭代都会得到随机常量。他们看起来像他们可能是记忆位置,但我不确定。多维向量?
#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int numofArrays;
int numofQueries;
vector<vector<int>> arr(numofArrays);
cin >> numofArrays;
cin >> numofQueries;
int arrSize;
int number;
vector<int> indArr;
// Outer loop, appends vectors containing ints to a multidimensional vector
for (int i = 0; i < numofArrays; i++) {
cin >> arrSize; // Getting number of elements from user
// Inner loop, gets user inputted values then creates a vector which is added to the multidimensional vector
for (int x = 0; x < arrSize; x++) {
cin >> number;
indArr.push_back(number);
cout << "Last number added to vector: " << number << endl; // Checking to see if correct numbers are being added.
}
arr.push_back(indArr);
cout << "Multidimensional Vector size: " << arr.size() << endl; // Checking size of vector after each iteration
indArr.clear(); // Empties vector for next iteration
}
return 0;
}
由于我很新的C++,我欢迎建设性的批评。
新修代码:
#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int numofArrays;
int numofQueries;
cin >> numofArrays;
cin >> numofQueries;
vector<vector<int>> arr(numofArrays);
// Outer loop, appends vectors containing ints to a multidimensional vector
for (int i = 0; i < numofArrays; i++) {
int arrSize;
vector<int>indArr;
cin >> arrSize; // Getting number of elements from user
indArr.resize(arrSize); // Resizing array for next values
// Inner loop, gets user inputted values then creates a vector which is added to the multidimensional vector
for (int x = 0; x < arrSize; x++) {
int number;
cin >> number;
indArr.push_back(number);
cout << "Last number added to vector: " << number << endl; // Checking to see if correct numbers are being added.
}
arr.push_back(indArr);
cout << "Multidimensional Vector size: " << arr.size() << endl; // Checking size of vector after each iteration
}
int test = arr[0][0];
cout << test;
return 0;
}
所有你需要做的是弄清楚如何使用一个向量,因为“多维向量”只是一个向量。 – juanchopanza
但我之前使用过矢量,它的行为不像任何矢量。你能解释我做错了什么吗?为什么每当我打印出“cout <<”多维向量大小:“<< arr.size()<< endl; //每次迭代后检查向量的大小”这一行时,我都会收到一个超过4000000的数字? – King
可能是你的代码中的一个无聊的东西。 – juanchopanza