希望打印出test1的值。我只是想问一下test1的值是如何打印出来的,只打印出来" PRINT START"和"打印结束"。任何帮助或想法都非常感激。
#include <vector>
#include <iostream>
using namespace std;
void print_out(vector<int> numbers)
{
cout << "------------- PRINT START -------------" << endl;
for( auto i: numbers )
cout << i << endl;
cout << "------------- PRINT END -------------" << endl;
}
vector<int> beautify(vector<string> numbers)
{
vector<int> result;
return result;
}
int main()
{
vector<string> test1;
test1.push_back("3167389213");
test1.push_back("32989741893");
test1.push_back("2138");
print_out(beautify(test1));
return 0;
}
谢谢,所以我已经在美化中应用了代码,尽管它仍然无法输出test1值。
vector<int> beautify(vector<string> numbers)
{
vector<int> result;
for (auto & i : numbers)
result.push_back(std::stoi(i));
return result;
}
答案 0 :(得分:1)
好的,这是你的程序流程:
print_out
调用beautify(test1)
函数,因此我们需要查看beautify()
返回的内容。beautify()
返回一个空向量(int)print_out()
打印空矢量中的所有元素,所以没有。此代码是等效的,可能会澄清一些内容:
int main()
{
vector<string> test1;
test1.push_back("3167389213");
test1.push_back("32989741893");
test1.push_back("2138");
vector<int> newVector = beautify(test1);
print_out(newVector); //here newVector is empty
return 0;
}
您可能想要做的是在beautify()
函数中,将字符串向量转换为int向量。见How do I convert vector of strings into vector of integers in C++?
答案 1 :(得分:0)
更正您的beautify
功能
vector<int> beautify(vector<string> numbers)
{
vector<int> result;
for (auto & i : numbers)
result.push_back(std::stoi(i));
// If results are to be sorted
std::sort(result.begin(), result.end());
return result;
}
此外,以字符串形式推送的整数超出范围。
test1.push_back("3167389213"); // outside the range of int
test1.push_back("32989741893");