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)    收藏  举报

导航