【发布时间】:2020-08-14 16:37:18
【问题描述】:
#include <bits/stdc++.h>
#include <string>
using namespace std;
vector<string> func(string mag) {
vector<string> s1;
string temp1;
string temp2;
temp1[0] = 'a';
temp1[1] = 'b';
temp1[2] = 'c';
temp2 += "xyz";
s1.push_back(temp1);
s1.push_back(temp2);
return s1;
}
int main() {
string st;
vector<string> xyz;
xyz = func(st);
for (int a = 0; a < xyz.size(); a++)
cout << xyz[a] << ',';
}
上面代码的输出是,xyz,,尽管我期待的是abc,xyz,。不打印添加到向量中的字符串temp1。
字符串temp1是非空的,打印出来输出abc,但是把它推到向量s1并打印出向量,字符串temp1不打印,而字符串@ 987654331@,其中"xyz"被添加到它作为temp2+="xyz",被添加到向量中并且在打印向量的内容时被打印。
有人可以向我解释为什么字符串temp1 没有出现在矢量内容中吗?
【问题讨论】:
-
请缩进您的代码。