【发布时间】:2018-04-02 06:12:57
【问题描述】:
我正在尝试获取两个向量的每个元素的总和并将总和推入一个新向量。
即。
a = {1, 2 ,3} & b = {1, 2 ,3}
c = a + b
c = {2, 4, 6}
我已经让它适用于相同大小的向量,但是每当一个向量大于另一个向量时,我就会得到一个向量下标超出范围错误。
a = {1, 2 ,3} & b = {1, 2 ,3, 4}
c = a + b
我假设这发生在 b[3] + ?? ,我将如何添加它,所以输出是:
c = {2, 4, 6, 4}
到目前为止我得到的是:
vector<int> a = { 1,2,3,4 };
vector<int> b = { 5,4,3,2,1 };
vector<int> *vPtr;
vPtr = new vector<int>;
int sum;
int size = a.size();
if (size < b.size())
size = b.size();
for (unsigned i = 0; i < size; i++) {
sum = a[i] + b[i];
(*vPtr).push_back(sum);
}
for (vector<int>::const_iterator it = (*vPtr).begin(); it != (*vPtr).end(); it++)
cout << *it << " ";
cout << endl;
return 0;
【问题讨论】:
-
在较小的向量末尾用额外的零填充
-
拿出一张空白纸。用简短、简明、简洁的英语陈述写下实现你正在尝试做的事情的逻辑逐步算法。之后,schedule an appointment with your rubber duck。在您的橡皮鸭批准您提出的解决方案后,只需将您写下的内容直接翻译成 C++。任务完成。