Vì vậy, tôi đã gặp phải vấn đề này khi xây dựng mã của mình. câu hỏi này
Công việc này dựa trên việc nạp chồng toán tử, bạn cần xây dựng một máy tính chuỗi, máy tính có thể thực hiện các hàm cộng trừ các biến chuỗi (sẽ chỉ có
ký tự và khoảng trống cho chuỗi).
Vấn đề tôi gặp phải là khi tôi cố gắng thêm hai vectơ mà tôi đã tạo. Ví dụ: vectơ A= <1,2,3> và vectơ B= <1,2>. Tôi muốn A+B bằng <2,4,3>. Nhưng khi tôi làm điều này, kết quả tôi nhận được là 2. Đây là mã của tôi.
#include
#include
#include
using namespace std;
chuỗi a;
chuỗi b;
int k, j, ab, x;
vector vảy;
int chính() {
cout << "Đầu vào A: ";
getline(cin, a);
cout << "Đầu vào B: ";
getline(cin, b);
vector sca;
vector scb;
//Đối với A
for (int i = 0; i < a.size(); i++) {
sca.push_back(static_cast (a[i]));
}
cout << "Đầu vào A: ";
for (int j = 0; j < sca.size(); ++j)
{
cout << sca[j] << "\t";
}
cout << endl;
cout << endl;
//Đối với B
for (int p = 0; p < b.size(); p++) {
scb.push_back(static_cast (b[p]));
}
cout << "Đầu vào B: ";
for (int j = 0; j < scb.size(); ++j)
{
cout << scb[j] << "\t";
}
scab.push_back(sca[j] + scb[j]);
cout << endl;
cout << endl;
cout << "A+B: " << vảy[j] << "\t";
system("pause");
Cảm ơn bạn trước.
Hãy thử sử dụng nhiều nội dung hơn từ thư viện chuẩn để dễ dàng hơn:
kích thước tự động = std::max(sca.size(), scb.size());
sc.resize(kích thước);
scb.resize(kích thước);
tự động vảy = std::vector(size);
std::transform(sca.begin(), sca.end(), scb.begin(), scab.begin(), std::plus());
Tôi là một lập trình viên xuất sắc, rất giỏi!