gpt4 book ai didi

c++ - 如何在 vector C++ 中打印元素

转载 作者:可可西里 更新时间:2023-11-01 16:30:14 30 4
gpt4 key购买 nike

我在使用 void print 函数打印出这个 vector 时遇到了问题。我不太确定“std::allocator”在说什么。我收到这些错误:

st1.cpp: In function ‘void Print(std::vector<int, std::allocator<int> >)’:
st1.cpp:51: error: declaration of ‘std::vector<int, std::allocator<int> > v’ shadows a parameter

这是文件:

#include <iostream>
#include <string>
#include <vector>
#include <stack>
#include <algorithm>
using namespace std;

void Initialize();
void Print();

int main()
{
stack<string> s1, s2;
s1.push("b");
s2.push("a");

if (s1.top() == s2.top())
{
cout << "s1 == s2" << endl;
}
else if (s1.top() < s2.top())
{
cout << "s1 < s2" << endl;
}
else if (s2.top() < s1.top())
{
cout << "s2 < s1" << endl;
}
else
{
return 0;
}

vector<int> v;
Initialize();
Print();
}

void Initialize(vector<int> v)
{
int input;
cout << "Enter your numbers to be evaluated: " << endl;
while(input != -1){
cin >> input;
v.push_back(input);
//write_vector(v);
}
}

void Print (vector<int> v){
vector<int> v;
for (int i=0; i<v.size();i++){
cout << v[i] << endl;
}
}

我只想将 v 打印到屏幕上。有帮助吗?

最佳答案

你的函数声明和定义不一致,你想从Initialize生成vector,你可以这样做:

void Initialize(vector<int>& v);

打印 vector :

void Print(const vector<int>& v);

现在你调用:

vector<int> v;
Initialize(v);
Print(v);

不要忘记更改 InitializePrint 的函数定义以匹配我在上面提供的新签名。您还重新定义了一个局部变量 v ,它隐藏了函数参数,您只需要注释掉该行,还通过 const ref 传递 vector :

void Print (const vector<int>& v){
//vector<int> v;
for (int i=0; i<v.size();i++){
cout << v[i] << endl;
}
}

关于c++ - 如何在 vector C++ 中打印元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14639782/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com