CPP高级数组
1 /* CPP高级数组 */
2
3 #include<iostream>
4 #include<array>
5 #include<vector>// C++标准库
6 #include<string>// C++字符串
7 using std::array;// 静态数组 在栈上
8 using std::vector;// 动态数组 在堆上
9 using std::string;
10
11 // 使用C++风格数组不需要管理内存
12 // 使用array 注意不要栈溢出
13 // array适用于任何类型
14
15 void main()
16 {
17 //
18 array<int ,5> myint = {1,2,3,4,5};
19
20 array<int ,1024*256> myint1;// 展益出
21
22 vector<double> myvector;// 动态数组 堆上
23
24 for (int i=0; i<1024*1024; i++)
25 {
26 myvector.push_back(i);
27 }
28
29 std::cin.get();
30 }
31
32 //-----------------------------------------------
33
34
35 void main()
36 {
37 array<int ,5> myint1 = {1,2,3,4,5};
38 array<int ,5> myint2 = {11,12,13,14,15};
39 array<int ,5> myint3 = {21,22,23,24,25};
40
41 array<array<int ,5>,3> myint = {myint1,myint2,myint3};
42 //array<array<int ,5>,3> myint = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};// 这样初始化也可以
43 for (int i=0; i<myint.size(); i++)// 数组大小
44 {
45 for (int j=0; j<myint1.size(); j++)
46 {
47 std::cout << " " << myint[i][j];
48 }
49 std::cout << "\n";
50 }
51
52 std::cin.get();
53 }
54
55 //-----------------------------------------------
56
57 /* vector可变长数组 */
58
59 void main()
60 {
61 vector <string> string1;// 动态字符串数组
62 // 可以反复利用
63 string1.push_back("notepad");
64 string1.push_back("calc");
65 string1.push_back("mspaint");
66 string1.pop_back();// 从尾部删除一个
67 //string1.clear();// 清空
68
69 for (int i=0; i<string1.size(); i++)// 遍历动态数组
70 {
71 system(string1[i].c_str());
72 }
73 }
74
75 //-----------------------------------------------
76
77 void main()
78 {
79 vector <string> string1;// 动态字符串数组
80 // 可以反复利用
81 string1.push_back("notepad");
82 string1.push_back("calc");
83 string1.push_back("mspaint");
84
85 vector<string>::iterator ibegin,iend;// 迭代器
86
87 ibegin = string1.begin();// 数据的起始点
88
89 iend = string1.end();// 结束
90
91 for (;ibegin!=iend;ibegin++)
92 {
93 string tempstr = *ibegin;// 获取指针指向的数据
94 system(tempstr.c_str()); // 执行指令
95 }
96 }
97
98 //-----------------------------------------------
99
100 void main()
101 {
102 array<int ,5> myint = {1,2,3,4,5};
103 array<int,5>::iterator ibegin,iend;// 正向迭代
104 ibegin = myint.begin();
105 iend = myint.end();
106 while(ibegin!=iend)
107 {
108 std::cout << *ibegin << std::endl;
109 ibegin++;
110 }
111
112 array<int ,5>::reverse_iterator rbegin,rend;// 反向迭代
113 rbegin = myint.rbegin();
114 rend = myint.rend();
115 while (rbegin!=rend)
116 {
117 std::cout << *rbegin << std::endl;
118 rbegin++;
119 }
120
121 std::cin.get();
122 }
123
124 //-----------------------------------------------
125
126 void main()
127 {
128 vector <string> string1;// 动态字符串数组
129 string1.push_back("notepad");
130 string1.push_back("calc");
131 string1.push_back("mspaint");
132 // 反向迭代器
133 vector<string>::resverse_iterator rbegin = string1.rbegin;
134 vector<string>::resverse_iterator rend = string1.rend;
135
136 A: if(rbegin!=rend)
137 {
138 system((*rbegin).c_str()); // 执行指令
139 rbegin++;
140 goto A;
141 }
长风破浪会有时,直挂云帆济沧海
posted on 2015-05-31 22:25 Dragon-wuxl 阅读(180) 评论(0) 收藏 举报
浙公网安备 33010602011771号