您提供的代码片段中,pos 是一个 v<int>
类型的对象,而 tmp 是一个 v<int>
类型的对象。根据错误消息,您尝试将 tmp 添加到 pos[i] 中,但是 pos[i] 是一个 int
类型,因此会出现错误。
要解决这个问题,您需要确保 pos[i] 是一个 v<int>
类型的对象,而不是 int
类型的对象。可以通过以下两种方法来解决:
方法一:使用 vector<vector<int>>
类型替代 v<int>
类型
#include <vector>
const int MAX = 10;
int main() {
std::vector<std::vector<int>> pos(MAX); // 使用 vector<vector<int>> 类型替代 v<int> 类型
std::vector<int> tmp;
// 将 tmp 添加到 pos[i] 中
for (int i = 0; i < MAX; i++) {
pos[i].push_back(tmp);
}
return 0;
}
方法二:将 pos[i] 定义为 v<int>
类型的对象
#include <vector>
const int MAX = 10;
class v {
public:
std::vector<int> data;
void push_back(int value) {
data.push_back(value);
}
};
int main() {
v pos[MAX]; // 将 pos[i] 定义为 v<int> 类型的对象
v tmp;
// 将 tmp 添加到 pos[i] 中
for (int i = 0; i < MAX; i++) {
pos[i].push_back(tmp);
}
return 0;
}
以上两种方法都可以解决您遇到的问题,具体使用哪种方法取决于您的需求和代码架构。