我正在嘗試編寫一個帶有向量返回類型的程序。它不斷崩潰。我認爲問題在於,在矢量創建過程中,編譯器沒有初始化新矢量的內存。但我不太確定問題是什麼。如果有人能幫忙,非常感謝。 TY。從@Nandu和返回類型向量
//Settings-->compiler-->(Have g++ follow the c++11 ISO c++ language standard [-std=c++11]
#include <iostream>
#include <vector>
#include <array>
#include <iomanip>
using namespace std;
void displayVector(vector<double> &);
vector<double> calcVolts(vector<double> &U, vector<double> &V);
int main()
{
vector<double> current {10.62, 14.89, 13.21, 16.55, 18.62, 9.47, 6.58, 18.32, 12.15, 3.98};
vector<double> resistance { 4.0, 8.5, 6.0, 7.35, 9.0, 15.3, 3.0, 5.4, 2.9, 4.8};
//displayVector(current);
//displayVector(resistance);
calcVolts (current, resistance);
}
void displayVector(vector<double> &object)
{
for (int R = 0; R <object.size(); ++R)
{
cout<< setw(5)<< R+1<< "\t"<< object[R]<<endl;
}
}
vector<double> calcVolts(vector<double> &U, vector<double> &V)
{
std::vector <double> Voltage;
if ((U.size() == V.size()) == false)
{
cout<<"Invalid Matrix Multiplication: Size do not match.\n\n";
}
else
{
for (int R = 0; R <U.size(); ++R)
{
Voltage[R] = U[R]*V[R];
}
return Voltage;
}
}
見註釋@soulsabr
答:
從@Soulsabr:前intitialization也應申報其大小 載體。
From @Nandu: 局部變量沒有返回類型。
從@Soulsabr: {你當然可以返回它。在一個std :: vector的情況下,將會創建一個副本,以便本地元素可以在超出範圍時被銷燬。你絕對不能做的是一個指針返回給本地對象。}
非常感謝。 intitialization之前的矢量也應該聲明其大小。 –
將此標記爲正確的答案將是一件好事。 – soulsabr
theres 2有用的建議,創造正確的答案@soulsabr –