c++ 打印vector案例
时间: 2024-02-27 19:50:46 浏览: 92
当我们想要打印一个vector的内容时,可以使用循环遍历vector的每个元素,并将其打印出来。下面是一个C++打印vector的简单示例:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> numbers = {1, 2, 3, 4, 5};
// 使用for循环遍历vector并打印每个元素
for (int i = 0; i < numbers.size(); i++) {
std::cout << numbers[i] << " ";
}
std::cout << std::endl;
return 0;
}
```
在上面的示例中,我们首先创建了一个名为`numbers`的vector,并初始化了一些整数元素。然后,我们使用for循环遍历vector,并使用`std::cout`打印每个元素。最后,我们使用`std::endl`输出一个换行符。
运行上述代码,将会输出以下结果:
```
1 2 3 4 5
```
这样就完成了对vector的打印。
相关问题
多元多项式回归 C++带类详细完整实现及案例 变量形式为:vector<vector<double>> X vector<double> y
好的,下面是多元多项式回归的 C++ 实现,包括类的定义、成员函数的实现和示例代码:
```c++
#include <iostream>
#include <vector>
using namespace std;
// 多元多项式回归类
class PolynomialRegression {
private:
int degree; // 多项式次数
vector<vector<double>> X; // 自变量矩阵
vector<double> y; // 因变量向量
vector<double> coefficients; // 多项式系数向量
public:
// 构造函数
PolynomialRegression(int d, vector<vector<double>> x, vector<double> y) {
degree = d;
X = x;
this->y = y;
fit();
}
// 多项式回归模型拟合
void fit() {
int n = X.size();
int m = X[0].size();
// 计算 X 矩阵的转置
vector<vector<double>> X_T(m, vector<double>(n));
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
X_T[i][j] = X[j][i];
}
}
// 计算 X_T * X 矩阵
vector<vector<double>> X_T_X(m, vector<double>(m));
for (int i = 0; i < m; i++) {
for (int j = 0; j < m; j++) {
for (int k = 0; k < n; k++) {
X_T_X[i][j] += X_T[i][k] * X[k][j];
}
}
}
// 计算 X_T * y 向量
vector<double> X_T_y(m);
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
X_T_y[i] += X_T[i][j] * y[j];
}
}
// 求解线性方程组 X_T * X * coefficients = X_T * y
for (int k = 0; k < degree + 1; k++) {
for (int i = k; i < m; i++) {
double factor = X_T_X[i][k] / X_T_X[k][k];
for (int j = k; j < m; j++) {
X_T_X[i][j] -= factor * X_T_X[k][j];
}
X_T_y[i] -= factor * X_T_y[k];
}
}
// 回代求解系数向量
coefficients.resize(degree + 1);
for (int k = degree; k >= 0; k--) {
double s = 0;
for (int i = k + 1; i < degree + 1; i++) {
s += X_T_X[k][i] * coefficients[i];
}
coefficients[k] = (X_T_y[k] - s) / X_T_X[k][k];
}
}
// 预测函数
double predict(vector<double> x) {
double y_pred = 0;
for (int i = 0; i < degree + 1; i++) {
double term = coefficients[i];
for (int j = 0; j < x.size(); j++) {
term *= pow(x[j], i);
}
y_pred += term;
}
return y_pred;
}
// 打印多项式系数向量
void print_coefficients() {
cout << "Polynomial coefficients:" << endl;
for (int i = 0; i < degree + 1; i++) {
cout << coefficients[i] << " ";
}
cout << endl;
}
};
int main() {
// 构造数据集
vector<vector<double>> X = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}, {10, 11, 12}};
vector<double> y = {1, 2, 3, 4};
// 构造多项式回归模型
PolynomialRegression pr(2, X, y);
// 输出多项式系数向量
pr.print_coefficients();
// 预测新的样本
vector<double> x_pred = {1, 2, 3};
double y_pred = pr.predict(x_pred);
cout << "Predicted value: " << y_pred << endl;
return 0;
}
```
在上面的代码中,我们定义了一个多元多项式回归类 `PolynomialRegression`,包含 `degree`、`X`、`y` 和 `coefficients` 四个成员变量,以及 `fit()`、`predict()` 和 `print_coefficients()` 三个成员函数。
在构造函数中,我们传入多项式的次数 `degree`、自变量矩阵 `X` 和因变量向量 `y`,并调用 `fit()` 函数进行模型拟合。在 `fit()` 函数中,我们使用最小二乘法求解多项式系数向量 `coefficients`,并存储到类的成员变量中。
在 `predict()` 函数中,我们输入一个自变量向量 `x`,使用多项式系数向量 `coefficients` 进行预测,并返回预测值。在 `print_coefficients()` 函数中,我们打印多项式系数向量 `coefficients` 的值。
在主函数中,我们构造一个数据集 `X` 和 `y`,并使用 `PolynomialRegression` 类构造一个多项式回归模型 `pr`。然后,我们输出多项式系数向量,以及使用 `predict()` 函数预测新的样本的结果。
希望这个实现对你有帮助!
阅读全文