本文介绍了将两个向量相加的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以我在构建代码时遇到了这个问题.这个问题

So I have this problem I ran into when building a code.This the question

这项工作基于运算符重载,需要搭建一个字符串计算器,计算器可以为字符串变量做加减函数(只有
字符串的字符和空格).

我遇到的问题是当我尝试将我创建的两个向量相加时.例如,向量 A= 和向量 B= .我希望 A+B 等于 .但是当我这样做时,我得到的输出为 2.这是我的代码.

The problem I ran into is when I try to add the two vectors I created together.For example, Vector A= <1,2,3> and Vector B= <1,2>. I want A+B to equal <2,4,3>. But when I do that I get an output of 2. Here is my code.

#include<iostream>
#include<string>
#include<vector>
using namespace std;
string a;
string b;
int k, j, ab, x;
vector <int> scab;
int main() {

cout << "Input A: ";
getline(cin, a);
cout << "Input B: ";
getline(cin, b);
    vector<int> sca;
    vector<int> scb;
    // For A
    for (int i = 0; i < a.size(); i++) {
        sca.push_back(static_cast <int> (a[i]));
    }
    cout << "Input A: ";
    for (int j = 0; j < sca.size(); ++j)
    {
        cout << sca[j] << "\t";
    }
    cout << endl;
    cout << endl;
    // For B
    for (int p = 0; p < b.size(); p++) {
        scb.push_back(static_cast <int> (b[p]));
    }
    cout << "Input 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: " << scab[j] << "\t";

    system("pause");

}

先谢谢你.

推荐答案

尝试使用标准库中的更多内容以使其更容易:

Try to use more from the standard library to make it easier:

auto size = std::max(sca.size(), scb.size());
sca.resize(size);
scb.resize(size);

auto scab = std::vector<int>(size);
std::transform(sca.begin(), sca.end(), scb.begin(), scab.begin(), std::plus<int>());

这篇关于将两个向量相加的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-04 03:07
查看更多