1:array 定义的时候必须定义数组的元素个数;而vector 不需要;且只能包含整型字面值常量,枚举常量或者用常量表达式初始化的整型const对象,非const变量以及需要到运行阶段才知道其值的const变量都不能用来定义数组的维度. 2:array 定义后的空间是固定的了,不能改变;而vector 要灵活得多,可再加或减. 3:vector有一系列的函数操作,非常方便使用.和vector不同,数组不提供 push——back或者其他的操作在数组中添加新元素,数组一经定义就不允许添加新元素;若需要则要充许分配新的内存空间,再将员数组的元素赋值到新的内存空间。 4. 数组和vector不同,一个数组不能用另一个数组初始化,也不能将一个数组赋值给另一个数组;
1 #include<vector>
2 #include<iostream>
3 using namespace std;
4
5 /*
6
7 初始化
8 -列表初始化
9 --int a={0};
10 --int a{0};
11 -默认初始化
12 -拷贝初始化(使用“=”时)
13 向量vector --(容器)
14
15 */
16 int main()
17 {
18
19 //vector<int> vi = { 1,2,3 }; //列表初始化
20 //vector<string> vs = { "hello","world" };
21
22 //vector<int> vi(10, 0); //直接初始化 10个为0的int
23 //vector<string> vs(2, "hello"); // 2个"hello" 的string
24
25 /*vector<int> vi; //空的vector对象
26 for (int i = 0; i < 100; i++)
27 {
28 vi.push_back(i); //依次把i的值放到vector的尾端
29 } //循环结束后vi有100个元素,值从0到99
30 cout <<"vi中的元素的个数是"
31 << vi.size()<<endl; //输出100
32 for (auto &i : vi)
33 {
34 i += 10;
35 }
36 for (auto &i : vi)
37 {
38 cout << i << " | ";
39 }
40 cout << vi[50] + 7 << endl;
41 vi[50] = vi[50] - 7;
42 cout << vi[50] << endl;*/
43 vector<unsigned> scores(11, 0);//11个分数段,全部初始化为0
44 unsigned grade;
45 while (cin >> grade)
46 {
47 if (grade <= 100)
48 {
49 ++scores[grade / 10];//将对应分数段的计数值加1
50 }
51 }
52 for (auto i : scores)
53 {
54 cout << i <<" | ";
55 }
56
57
58
59
60
61 system("pause");
62 return 0;
63 }