所以我正在做一個函數來獲取vector的certatin元素並將它們存儲到另一個向量中。每當我運行該程序時,它都會給出分段錯誤錯誤?爲什麼會發生這種情況,我該如何解決這些問題才能解決問題?傳遞給函數的向量沒有被修改
#include <iostream>
#include <vector>
#include <string>
using namespace std;
void addition (vector <char> a, vector <string> b)
{
for (int i = 0; i < a.size(); ++i)
{
if (a[i] == '3')
{
b.push_back("3");
}
if (a[i] == '4')
{
b.push_back("4");
}
if (a[i] == '+')
{
b.push_back("+");
}
}
}
int main()
{
vector <char> v1 = {'3', '4', '+', '3', '4'};
vector <string> v2;
addition(v1, v2);
cout << v2[0] << endl;
return 0;
}
爲什麼?我很困惑 – bastwendo
我沒仔細看,我的錯誤。回收 – CIsForCookies
如果避免使用out參數,程序的流程將變得更加清晰。例如。 '''矢量另外(矢量一個)'''。還有很多其他很好的理由來避免它們。 –
tillaert