如何正确显示矢量? [复制]

Posted

技术标签:

【中文标题】如何正确显示矢量? [复制]【英文标题】:How can I display vector correct? [duplicate] 【发布时间】:2014-02-23 16:57:25 【问题描述】:

在 C++ 中正确显示我的矢量时遇到了一点问题。

现在打印如下: Spiller navn: A 得分:1

Spiller 导航:A 得分:2

Spiller 导航:A 得分:3

Spiller 导航:B 得分:1

Spiller 导航:B 得分:2 ... ...等等。

但我希望它只打印一次“Spiller”,多次打印“Score”,所以它看起来像这样:

Spiller 导航:A 得分: 1 2 3

Spiller 导航:B 得分: 1 2 3

这是我的填充向量函数:

    void fyldVector(vector<Beregning>& nySpiller) 

string navn;
int score;


cout << "Indtast antal spillere: ";
int antal;
cin >> antal;

//nySpiller.reserve( nySpiller.size() + antal );

for (int i = 0; i < antal; i++) 
    cout << "Indtast spiller navn: ";
    cin >> navn;

    for (int j = 0; j < 3; j++) 
        cout << "Indtast score: ";
        cin >> score;

        Beregning nyBeregning(navn, score);
        nySpiller.push_back(nyBeregning);
    

cout << endl;

还有我的打印向量函数:

    void printVector(const vector<Beregning>& nySpiller) 

unsigned int size = nySpiller.size();

cout << nySpiller.size() << endl;

for (unsigned int i = 0; i < size; i++ ) 

    cout << "Spiller navn: " << nySpiller[i].getNavn() << endl;

    cout << "Score: " << nySpiller[i].getScore() << endl;

    cout << endl;

 

【问题讨论】:

我以前见过这个问题,据我记得答案是:'循环遍历向量,并逐个输出项目' ! 【参考方案1】:

由于你没有说函数 getScore 是什么以及它的返回类型是什么,所以我使用你的示例中使用的函数。

void printVector( const vector<Beregning> &nySpiller ) 

   string navn;

   for ( const Beregning &b : nySpiller )
   
      if ( navn != b.getNavn() )
      
         navn = b.getNavn();
         cout << "\nSpiller navn: " << navn << endl;
         cout << "Score: " << endl;
         

      cout << b.getScore() << endl;
   

如果您的编译器不支持基于范围的 for 循环,那么您可以编写

void printVector( const vector<Beregning> &nySpiller ) 

   string navn;

   for ( vector<Beregning>::size_type i = 0; i < nySpiller.size(); i++ )
   
      if ( navn != nySpiller[i].getNavn() )
      
         navn = nySpiller[i].getNavn();
         cout << "\nSpiller navn: " << navn << endl;
         cout << "Score: " << endl;
         

      cout << nySpiller[i].getScore() << endl;
   

【讨论】:

AFAIR 在之前版本的问题nySpiller[i].getScore() 中返回了一个向量(参考)。 @πάντα ῥεῖ 我没有返回类型的定义。 看这里(可能已经被编辑过了):***.com/questions/21955416/… @πάντα ῥεῖ 谢谢,但我不会去看那里。提供所有必需的信息是问题作者的任务。 @πάντα ῥεῖ 更重要的是我展示了该方法。其他都是细节。

以上是关于如何正确显示矢量? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

尝试在矢量类中创建复制功能

如何将字符串编码为 UTF8,然后在 html 中正确显示? [复制]

使用 Sapera 拍摄图像并将数据复制到矢量

如何在 C++ 中打印矢量 <vector<int>>? [复制]

C ++创建一个矢量大小的数组,然后将矢量复制到C样式数组[复制]

如何在函数内正确分配结构? [复制]