《C++ Primer》学习笔记:3.3.3其他vector操作

简介: 《C++ Primer》(第五版)中计算vector对象中的索引这一小节中,举例要求计算各个分数段各有多少个成绩。代码如下:#include #include #include using namespace std;int main(){ vector scores(11...

《C++ Primer》(第五版)中计算vector对象中的索引这一小节中,举例要求计算各个分数段各有多少个成绩。

代码如下:

#include <iostream>
#include <string>
#include <vector>

using namespace std;

int main(){
    vector<unsigned> scores(11, 0);
    unsigned grade;
    while (cin >> grade){
        if (grade <= 100)
            ++scores[grade/10];
    }
    return 0;
}

当需要输出时,自己试着敲入:

cout << scores << endl;

发现程序报错:

error: invalid operands to binary expression ('ostream'
      (aka 'basic_ostream<char>') and 'vector<unsigned int>')

发现是类型问题,所以重新定义一下scores类型,使用范围for语句:

for (auto i : scores)
    cout << i << " ";
cout << endl;

改为:

#include <iostream>
#include <string>
#include <vector>

using namespace std;

int main(){
    vector<unsigned> scores(11, 0);
    unsigned grade;
    while (cin >> grade){
        if (grade <= 100)
            ++scores[grade/10];
    }
    for(auto i : scores)
        cout << i << " ";
    cout << endl;
    return 0;
}

这样就能把各个分数段各有多少个成绩序列打印出来了。

相关文章
|
11天前
|
C++ 容器
C++中向量的操作vector
C++中向量的操作vector
|
18天前
|
存储 C语言 C++
【C++】vector的使用上
**C++ STL的vector简介与用法:** Vector是动态顺序数组,提供高效下标访问,支持动态增长。与数组类似但可自动调整大小。常用构造函数包括默认、填充、迭代器范围和拷贝构造。析构函数自动释放内存。赋值运算符执行深拷贝。迭代器接口包括`begin()`和`end()`(反向对应`rbegin()`和`rend()`),C++11增加了const版本以支持只读访问。示例代码展示了不同构造函数和迭代器的使用。
|
25天前
|
C++ 容器
C++之评委打分案例(vector与deque容器练习)
C++之评委打分案例(vector与deque容器练习)
17 1
|
10天前
|
存储 Java C++
【c++】vector模拟
【c++】vector模拟
9 0
|
18天前
|
编译器 C++
【C++】vector的使用下
**C++ 中的 `std::vector` 概要:** - **元素获取:** 支持 `operator[]`(越界时不检
|
18天前
|
存储 安全 C++
|
20天前
|
存储 算法 C++
【C++】详解STL容器之一的 vector
【C++】详解STL容器之一的 vector
|
24天前
|
SQL 人工智能 算法
技术心得记录:模板函数函数模板FunctionTemplate(C++Primer
技术心得记录:模板函数函数模板FunctionTemplate(C++Primer
|
24天前
|
存储 算法 编译器
程序与技术分享:C++模板元编程学习笔记
程序与技术分享:C++模板元编程学习笔记
|
25天前
|
C++ 容器
【c++】优先级队列|反向迭代器(vector|list)
【c++】优先级队列|反向迭代器(vector|list)
9 0