zoukankan      html  css  js  c++  java
  • 自己看看

       1 #include <Windows.h>    //默认写在最上方
       2 #include <iostream>        //输入输出流
       3 #include <locale.h>        //宽字符 显示的头文件  ,以及函数 setlocale(LC_ALL,"");
       4 
       5 #include <vector>        //STL 
       6 #include <list>            //STL 
       7 #include <deque>        //STL 
       8 #include <set>            //STL
       9 #include <map>            //STL
      10 #include <hash_map>        //STL 
      11 #include <functional>    //STL 函数对象
      12 #include <algorithm>    //STL 算法,大概有100多个算法
      13 
      14 #include <string.h>        //字符串
      15 #include <cstring>        //字符串
      16 #include <string>        //字符串
      17 
      18 #include <bitset>        //二进制头文件
      19 
      20 #include <cstddef>        //size_t的头文件
      21 
      22 #include <xutility>
      23 
      24 #include <stdio.h>
      25 #include <math.h>
      26 #include <stdlib.h>
      27 #include <errno.h>
      28 #include <sysinfoapi.h>
      29 
      30 
      31 
      32 
      33 
      34 using namespace std;
      35 
      36 
      37 #define Conn(x,y) x##y
      38 #define ToChar(x) #@x
      39 #define ToString(x) #x
      40 
      41 
      42 class TestObject
      43 {
      44 public:
      45     TestObject()
      46     {
      47         this->m_iData1 = 10;
      48         this->m_iData2 = 20;
      49         this->m_iData3 = 30;
      50     }
      51 
      52 private:
      53     int m_iData1;
      54     int m_iData2;
      55     int m_iData3;
      56 };
      57 
      58 
      59 enum OpenModes
      60 {
      61     nInput,
      62     nOutput,
      63     nAppend,
      64     nX = 1,
      65     nY,
      66     nZ = 2,
      67 };
      68 
      69 typedef struct Student
      70 {
      71     Student()
      72     {
      73         nAge = 0;
      74         nLen = 0;
      75     }
      76 
      77     int nAge;
      78     int nLen;
      79 }Hello;
      80 
      81 //前包,后不包..一定要注意 end的迭代器
      82 bool FindInt(vector<int>::iterator begin, vector<int>::iterator end, int &nValue)
      83 {
      84     bool find = false;
      85 
      86     while (begin != end)
      87     {
      88         if (*begin == nValue)
      89         {
      90             find = true;
      91             break;
      92         }
      93         else
      94         {
      95             begin++;
      96         }
      97     }
      98 
      99 
     100     if (find)
     101     {
     102         return true;
     103     }
     104     else
     105     {
     106         return false;
     107     }
     108 
     109 
     110 }//这个就有点像STL里面的 find()函数
     111 
     112 void printt(int elem)
     113 {
     114     cout << elem << endl;
     115     cout << "aaaa" << endl;
     116 }
     117 
     118 
     119 int& add_one(int &x)
     120 {
     121 
     122     ++x;
     123     return x;
     124 
     125 }
     126 
     127 int AddThree(int *p)
     128 {
     129     *p = *p + 10;
     130     return *p;
     131 
     132 }
     133 
     134 void printValue_5(int(*x)[10], int rowSize)
     135 {
     136     for (int i = 0; i != rowSize;i++)
     137     {
     138 
     139         for (int j = 0; j != 10;++j)
     140         {
     141             cout << x[i][j] << " ";
     142         }
     143         cout << endl;
     144     }
     145 
     146 
     147 }
     148 
     149 
     150 
     151 
     152 
     153 
     154 class CBook
     155 {
     156 
     157 public:
     158     int price;
     159     int num;
     160     int sum;
     161 
     162     int GetPrice() const;
     163 
     164 
     165 };
     166 
     167 
     168 int CBook::GetPrice() const
     169 {
     170     int a = 1;
     171     a = a + 10;    //这个是可以进行写操作的
     172 
     173 
     174     //this->num = 2;//const 放在()后面,说明,不允许修改this的数据.不能进行 写 操作
     175 
     176 
     177     return 0;
     178 }
     179 
     180 CBook obj2;
     181 
     182 
     183 //递归的实例
     184 void DoA()
     185 {
     186     //cout << "Hello panzhengming" << endl;
     187     //DoA();
     188 }
     189 
     190 long Factorial(int n)//阶乘
     191 {
     192     //数学定义0的阶乘是 1.这是基准
     193 
     194     if ( 0 == n)
     195     {
     196         return 1;
     197     }
     198     else
     199     {
     200         return n * Factorial(n - 1);
     201     }
     202 }
     203 
     204 
     205 int main(int argc,char **argv)
     206 {
     207     setlocale(LC_ALL, "");
     208 
     209     /*
     210     CBook obj;
     211     obj.GetPrice();
     212     cout << obj.sum << endl;//局部对象,未初始化的变量都是垃圾就数据
     213     cout << obj2.sum << endl;//全局对象,未初始化的变量都是默认值
     214     */
     215 
     216 
     217 
     218     /*这段代码,我只是想演示 vector的长度是正常的计数,不是-1
     219     vector<int> a;
     220     a.push_back(1);
     221     a.push_back(2);
     222     int nSize = a.size();
     223     cout << nSize << endl;
     224     */
     225 
     226 
     227 
     228     /*
     229     vector<int> vec1;
     230     vec1.clear();
     231     vec1.push_back(10);
     232     vec1.push_back(20);
     233     vec1.push_back(30);
     234     vec1.push_back(40);
     235     vec1.push_back(50);
     236     //vec1数据
     237     for (size_t i = 0; i < vec1.size();i++)
     238     {
     239         cout << vec1[i] << endl;
     240     }
     241 
     242     cout << "------------------" << endl;
     243     //vec2数据
     244     vector<int> vec2(vec1);//用vec1初始化vec2
     245     for (size_t i = 0; i < vec2.size(); i++)
     246     {
     247         cout << vec2[i] << endl;
     248     }
     249 
     250     cout << "--------------------------" << endl;
     251     vector<int> vec3(20,5);//20个数据,每个元素的值都是5
     252     for (size_t i = 0; i < vec3.size(); i++)
     253     {
     254         cout << vec3[i] << endl;
     255     }
     256 
     257 
     258     //vector<Foo> a;
     259     //vector<Foo> b(10, 1);//10表示vector数量,1表示Foo构造函数的参数
     260 
     261 
     262     vector<int>::iterator first = vec1.begin();
     263     vector<int>::iterator last = vec1.end();
     264     if (first != last)
     265     {
     266         int number = *first + *(first + 1);
     267         cout << number << endl;
     268 
     269         first++;
     270     }
     271     
     272     */
     273 
     274 
     275     /*
     276     vector<int>    vec1;
     277     vec1.push_back(10);
     278     vec1.push_back(20);
     279     vec1.push_back(30);
     280     vec1.push_back(40);
     281     vec1.push_back(50);
     282 
     283     const vector<int>    vec2(vec1);
     284 
     285     //常迭代器
     286     vector<int>::iterator Iter = vec2.begin();
     287 
     288     while (Iter != vec2.end())
     289     {
     290         //修改元素值
     291         //*Iter = *Iter + 10000;
     292 
     293         cout << *Iter << endl;
     294 
     295         Iter++;
     296     }
     297 
     298     */
     299 
     300     /*
     301     vector<string>    list1;
     302     list1.push_back("Beijing");
     303     list1.push_back("shanghai");
     304     list1.push_back("nnajing");
     305     list1.push_back("yancheng");
     306     list1.push_back("xiangshui");
     307 
     308 
     309     list1.resize(3);
     310     for (vector<string>::iterator Iter = list1.begin(); Iter != list1.end();Iter++)
     311     {
     312         cout << *Iter << endl;
     313     }
     314 
     315     //vector<string>::iterator Iter = list1.begin(); 
     316     //while (Iter != list1.end())
     317     //{
     318     //    cout << *Iter << endl;
     319     //    Iter++;
     320     //}
     321 
     322 
     323 
     324     //vector<int>::size_type count = list1.size();
     325     //vector<int>::size_type maxCount = list1.max_size();
     326 
     327     //cout << count << "   " << maxCount << endl;
     328 
     329     //if (list1.empty())
     330     //{
     331     //    cout << "容器是空的" << endl;
     332     //}
     333     //else
     334     //{
     335     //    cout << "容器不是空的" << endl;
     336     //}
     337     //cout << list1.capacity() << endl;
     338     //cout << list1.size() << endl;
     339     
     340     //cout << list1.size() << endl;
     341     //cout << list1.capacity() << endl;
     342 
     343     //list1.resize(0);
     344     //if (list1.empty())
     345     //{
     346     //    cout << "empty()" << endl;
     347     //}
     348     */
     349 
     350 
     351 /*
     352     vector<int>    list1;
     353 
     354     list1.push_back(11);
     355     list1.push_back(22);
     356     list1.push_back(33);
     357     list1.push_back(44);
     358 
     359     int a = list1.at(3);
     360     cout << a << endl;
     361     */
     362 
     363 
     364 /*
     365     list<string> ilist;
     366     ilist.push_back("apple");
     367     ilist.push_back("bill");
     368     ilist.push_back("cat");
     369     ilist.push_back("dog");
     370     ilist.push_back("egg");
     371     ilist.push_back("fish");
     372     ilist.push_back("girl");
     373 
     374 
     375     //ilist.pop_front();
     376     //ilist.pop_back();
     377 
     378 
     379     //string sValue("bill");
     380     //string svalue2 = "girl";
     381     //list<string>::iterator Iter1 = find(ilist.begin(), ilist.end(), sValue);
     382     //list<string>::iterator Iter2 = find(ilist.begin(), ilist.end(), svalue2);
     383 
     384     //if (Iter1 != ilist.end() && Iter2 != ilist.end())
     385     //{
     386     //    cout << "找到了 " << sValue << endl;
     387     //    ilist.erase(Iter1, Iter2);
     388     //}
     389     //else
     390     //{
     391     //    cout << "没找到 " << sValue << endl;
     392     //}
     393 
     394     ilist.erase(ilist.begin(), ilist.end());
     395     if (ilist.empty())
     396     {
     397         cout << "全部删除了,之所以能删除是因为 ilist.end()表示最后1个后1个, 所以前面是全部删除了" << endl;
     398     }
     399     else
     400     {
     401         cout << "no" << endl;
     402     }
     403 
     404     for (list<string>::iterator Iter = ilist.begin(); Iter != ilist.end();Iter++)
     405     {
     406         cout << *Iter << endl;
     407     }
     408 
     409 
     410     */
     411 
     412 
     413 
     414 
     415     /*
     416     vector<int> a;
     417     vector<int> b;
     418     vector<int> c;
     419 
     420     a.push_back(1000);
     421     a.push_back(2000);
     422     a.push_back(3000);
     423     a.push_back(4000);
     424 
     425     b.push_back(11);
     426     b.push_back(22);
     427     b.push_back(33);
     428 
     429     c.push_back(66);
     430     c.push_back(77);
     431     c.push_back(88);
     432 
     433     cout << "a---------" << endl;
     434     for (vector<int>::iterator Itera = a.begin(); Itera != a.end();Itera++)
     435     {
     436         cout << *Itera << endl;
     437     }
     438 
     439     cout << "b----" << endl;
     440     for (vector<int>::iterator Iterb = b.begin(); Iterb != b.end();Iterb++)
     441     {
     442         cout << *Iterb << endl;
     443     }
     444     
     445 
     446     cout << "------------------------------------------------开始交换" << endl;
     447 
     448     //a.swap(b);
     449     b.swap(a);
     450 
     451     cout << "a---------" << endl;
     452     for (vector<int>::iterator Itera2 = a.begin(); Itera2 != a.end(); Itera2++)
     453     {
     454         cout << *Itera2 << endl;
     455     }
     456 
     457     cout << "b----" << endl;
     458     for (vector<int>::iterator Iterb2 = b.begin(); Iterb2 != b.end(); Iterb2++)
     459     {
     460         cout << *Iterb2 << endl;
     461     }
     462 
     463     cout << "赋值 -------------------------------------------------------------" << endl;
     464 
     465     a = b;
     466 
     467     for (vector<int>::iterator Itera2 = a.begin(); Itera2 != a.end(); Itera2++)
     468     {
     469         cout << *Itera2 << endl;
     470     }
     471 
     472     cout << "b----" << endl;
     473     for (vector<int>::iterator Iterb2 = b.begin(); Iterb2 != b.end(); Iterb2++)
     474     {
     475         cout << *Iterb2 << endl;
     476     }
     477 
     478     cout << "赋值 -------------------------------------------------------------" << endl;
     479 
     480     a.assign(c.begin(), c.end());
     481     for (vector<int>::iterator Itera2 = a.begin(); Itera2 != a.end(); Itera2++)
     482     {
     483         cout << *Itera2 << endl;
     484     }
     485 
     486     cout << "赋值 -------------------------------------------------------------" << endl;
     487 
     488 
     489     a.assign(5, 8888);
     490     for (vector<int>::iterator Itera2 = a.begin(); Itera2 != a.end(); Itera2++)
     491     {
     492         cout << *Itera2 << endl;
     493     }
     494 
     495 
     496     cout << "----------------------------------------------容量 增长" << endl;
     497     a.reserve(5);
     498     cout << a.size() << "  " << a.capacity() << endl;
     499     */
     500 
     501 
     502 
     503 /*
     504     cout <<"----------------------------------------------------------------deque类"<<endl;
     505 
     506 
     507     deque<int> a;
     508     a.push_back(3);
     509     a.push_back(4);
     510 
     511     a.push_front(2);
     512     a.push_front(1);
     513 
     514     for (deque<int>::iterator Iter = a.begin(); Iter != a.end();Iter++)
     515     {
     516         cout << *Iter << endl;
     517     }
     518 
     519 
     520     cout << "删除" << endl;
     521 
     522     a.pop_back();
     523     for (size_t nCount = 0; nCount < a.size();nCount++)
     524     {
     525         cout << a[nCount] << endl;
     526     }
     527 
     528     */
     529 
     530 
     531 /*
     532 
     533     list<int> a;
     534     a.push_front(3);
     535     a.push_front(2);
     536     a.push_back(4);
     537     a.push_front(1);
     538     a.push_front(0);
     539 
     540     for (list<int>::iterator Iter = a.begin(); Iter != a.end();Iter++)
     541     {
     542     cout << *Iter << " ";
     543     }
     544 
     545     cout << endl;
     546     a.reverse();
     547     for (list<int>::iterator Iter = a.begin(); Iter != a.end(); Iter++)
     548     {
     549     cout << *Iter << " " ;
     550     }
     551 
     552 */
     553 
     554 
     555 
     556 
     557     //算法
     558 /*
     559     //自动排序的红黑树
     560     //set<int> a;                //less<int>是默认的函数对象
     561     set<int, less<int>> a;    //less<int>是默认的函数对象
     562     //set<int, greater<int>> a;
     563 
     564     a.insert(9);
     565     a.insert(3);
     566     a.insert(8);
     567     a.insert(1);
     568     a.insert(5);
     569     a.insert(11);
     570 
     571     set<int,less<int>>::iterator Iter = a.begin();
     572 
     573 
     574 
     575     while (Iter != a.end())
     576     {
     577         cout << *Iter << endl;
     578         Iter++;
     579     }
     580 
     581     //for_each(a.begin(), a.end(), 函数对象);
     582     cout << "-------------------" << endl;
     583     for_each(a.begin(), a.end(), printt);*/
     584 
     585 
     586 
     587 //     vector<int> ivec;
     588 //     for (int i = 1; i <= 9;i++)
     589 //     {
     590 //         ivec.push_back(i);
     591 //     }
     592 // 
     593 //     ivec.push_back(4);
     594 //     ivec.push_back(4);
     595 //     ivec.push_back(4);
     596 //     ivec.push_back(4);
     597 // 
     598 // 
     599 // 
     600 //     int num = count(ivec.begin(), ivec.end(), 4);
     601 //     cout << num << "个4" << endl;
     602 //     cout << "-----------" << endl;
     603 // 
     604 //     vector<string> temp;
     605 //     temp.push_back("aaaaa");
     606 //     temp.push_back("aaaaa");
     607 //     temp.push_back("bbbbb");
     608 //     temp.push_back("ccccc");
     609 // 
     610 //     num = count(temp.begin(), temp.end(), "aaaaa");
     611 //     cout << num << "个 aaaaa" << endl;
     612 
     613 
     614 
     615     //min or max
     616 //     vector<int> temp;
     617 //     temp.clear();
     618 //     for (int i = -10; i <= 10; i++)
     619 //         temp.push_back(i);
     620 // 
     621 // 
     622 //     vector<int>::iterator Iter = temp.begin();
     623 //     //while (Iter != temp.end() )
     624 //     //{
     625 //     //    cout << *Iter << endl;
     626 //     //    Iter++;
     627 //     //}
     628 // 
     629 //     cout << *max_element(temp.begin(), temp.end()) << endl;
     630 
     631 
     632 
     633 /*
     634     list<int> ilist;
     635     for (int i = 0; i < 10;i++)
     636     {
     637         ilist.insert(ilist.end(), i);
     638     }
     639     for (int i = 0; i < 10; i++)
     640     {
     641         ilist.insert(ilist.end(), i);
     642     }
     643 
     644     list<int>::iterator Iter = ilist.begin();
     645     
     646     list<int>::iterator IterPos;
     647     IterPos = find(ilist.begin(), ilist.end(), 4);
     648 */
     649 
     650 
     651 /*
     652     string s("asdfaslasdfkljhlkj");
     653     string::size_type pos = s.find("asd");
     654     if (pos != string::npos)
     655     {
     656         cout << "找到了" << endl;
     657         cout << pos << endl;
     658     }
     659     else
     660     {
     661         cout << "没找到" << endl;
     662     }
     663 */
     664 
     665 
     666 
     667 
     668     
     669 
     670 
     671 
     672 
     673 
     674 /*
     675     deque<int> idep;
     676     for (int i = 1; i < 10;i++)
     677     {
     678         idep.push_back(i);
     679     }
     680 
     681 
     682     deque<int>::iterator Iter = idep.begin();
     683 
     684     search()*/
     685 
     686 
     687 
     688 
     689 
     690     //交换算法
     691 
     692 /*
     693     vector<int> ivec;
     694     deque<int> ideq;
     695     ivec.clear();
     696     ideq.clear();
     697     for (int i = 0; i <= 9;i++)
     698     {
     699         ivec.push_back(i);
     700     }
     701     for (int i = 11; i <= 15; i++)
     702     {
     703         ideq.push_back(i);
     704     }
     705     
     706 
     707 
     708 
     709     swap_ranges(ivec.begin(), ivec.end(), ideq.begin());
     710 
     711 
     712 
     713     for (vector<int>::iterator Iter = ivec.begin(); Iter != ivec.end(); Iter++)
     714     {
     715         cout << *Iter << endl;
     716     }
     717     cout << "-------------------------" << endl;
     718     for (deque<int>::iterator Iter = ideq.begin(); Iter != ideq.end(); Iter++)
     719     {
     720         cout << *Iter << endl;
     721     }*/
     722     
     723 
     724     
     725 /*
     726     vector<int> ivec1;
     727     vector<int> ivec2;
     728 
     729     for (int i = 0; i <= 9; i++)
     730     {
     731         ivec1.push_back(i);
     732     }
     733     for (int i = 11; i <= 30; i++)
     734     {
     735         ivec2.push_back(i);
     736     }
     737 
     738 
     739     ivec1.swap(ivec2);
     740     
     741 
     742     for (vector<int>::iterator Iter = ivec1.begin(); Iter != ivec1.end(); Iter++)
     743     {
     744         cout << *Iter << endl;
     745     }
     746     cout << "-------------------------" << endl;
     747     for (vector<int>::iterator Iter = ivec2.begin(); Iter != ivec2.end(); Iter++)
     748     {
     749         cout << *Iter << endl;
     750     }*/
     751 
     752     
     753 /*
     754     list<string> slist;
     755     slist.push_back("hello");
     756     slist.push_back("hi");
     757     slist.push_back("good morning");
     758 
     759     
     760     replace(slist.begin(), slist.end(), "hello", "Doris");
     761     for (list<string>::iterator Iter = slist.begin(); Iter != slist.end();Iter++)
     762     {
     763         cout << *Iter << endl;
     764     }
     765 */
     766 
     767 
     768     
     769 /*
     770     int source[] = { 1, 2, 2, 3, 12, 3, 1343665, 78, 875, 4, 5, 34, 5, 87, 4, 67341 };
     771     int Num = sizeof(source) / sizeof(source[0]);
     772     cout << Num << endl;
     773 
     774 
     775     list<int> ilist;
     776     copy(source, source + Num, back_inserter(ilist));
     777 
     778     list<int>::iterator Iter = ilist.begin();
     779     while (Iter != ilist.end())
     780     {
     781         cout << *Iter << "  ";
     782         Iter++;
     783     }
     784     cout << endl;
     785     unique(ilist.begin(), ilist.end());
     786     for (list<int>::iterator Iter = ilist.begin(); Iter != ilist.end();Iter++)
     787     {
     788         cout << *Iter << "  ";
     789     }
     790 */
     791 
     792 
     793 
     794 
     795 /*
     796     string name("AnnaBella");
     797     string::size_type pos1 = name.find("nn");
     798 
     799     if (string::npos == pos1)
     800         cout << "没找到,返回特定的code,            string::npos" << endl;
     801     else
     802         cout << "找到了,下标是" << pos1 << endl;*/
     803 
     804 
     805 /*
     806 
     807     string name = "r2d3";
     808     string numerics("tew9993");
     809     string::size_type pos = name.find_first_of(numerics);
     810     if (string::npos == pos)
     811     {
     812         cout << "not find" << endl;
     813     }
     814     else
     815     {
     816         cout << "find " << endl;
     817     }*/
     818 
     819 
     820 /*
     821     string str = "C++ Primer 3rd ed";
     822     str.replace(11, 3, "4Fourth");
     823     cout << str << endl;*/
     824     
     825 
     826 
     827 
     828 
     829 /*
     830     int arr[] = { 9, 1, 23, 4 ,8};    
     831     int *p = arr;
     832 
     833     cout << *arr << endl;        //数组名就是指针
     834     cout << *p << endl;
     835 
     836     p = arr;
     837     cout << *p << endl;
     838     p = arr + 4;                //指针or数组名 移动    
     839     cout << *p << endl;
     840 
     841     p = p + 11;                    //越界
     842     cout << *p << endl;
     843 
     844 
     845     int *p1 = arr;        
     846     int *p2 = arr + 4;
     847     ptrdiff_t n = p1 - p2;        //ptrdiff_t 类型专门用于计算 2个指针之间的距离...只对指针有效,对数组名无效
     848     cout << n << endl;
     849 
     850 
     851 
     852     cout << "开始循环:" << endl;
     853     const size_t arr_sz = 5;                    
     854     int int_arr[arr_sz] = { 0, 1, 2, 3, 4 };    //长度是常量,所有会定义const arr_sz
     855 
     856     //逗号表达式,最后1个值是固定的,类似迭代器的写法了,这里的pend相当于是数组的尾后地址..C++允许的...需要好好理解会
     857     for (int *pBegin = int_arr, *pend = int_arr + arr_sz; pBegin != pend;++pBegin)    
     858     {
     859         cout << *pBegin << endl;
     860     }*/
     861 
     862 
     863 
     864 
     865     
     866 /*
     867     int arr[] = { 9, 1, 23, 4, 8 };
     868     int *p = arr;
     869 
     870 
     871     cout << arr << endl;
     872     cout << p << endl;
     873 
     874     p = arr + 3;
     875     cout << p << "  " << *p << "  " << &(arr[3]) << endl;    //的确是的:指针移动了,P就指向了新的地址*/
     876 
     877 
     878 
     879 /*
     880     double temp = 1.2;
     881     double *p = &temp;
     882 
     883 
     884     const double temp2 = 2.3;
     885     //p = &temp2;                //普通指针不能指向常量指针
     886     const double *p2;
     887     p2 = &temp2;                //常指针指向常对象 
     888 
     889     p2 = &temp;                    //常对象可以指向普通对象*/
     890 
     891 
     892 
     893 /*
     894     string s("hello");                            //可以修改,C++风格字符串            没有
     895 
     896     char ca3[] = "hello";                        //可以修改,C风格字符串            有隐含的
     897     char ca2[] = { 'C', '+', '+', NULL };        //这也是C风格字符串                 = NULL 2者等价
     898 
     899     char ca1[] = { 'C', '+', '+' };                //这是字符数组,不是字符串,因为没有
     900 
     901 
     902     char *cp2 = "panzhengming";        //指向字符串的指针
     903 
     904     int n = 0;
     905     while (*cp2)
     906     {
     907         n++;
     908         cp2++;
     909 
     910         if (n == 3)
     911         {
     912             cout << *cp2 << " ";
     913             break;
     914         }
     915 
     916         
     917     }
     918 
     919     false;
     920 
     921     cout << strlen(cp2) << endl;*/
     922 
     923 
     924 
     925 
     926 
     927 /*
     928     vector<vector<int>> temp;
     929     temp.clear();
     930 
     931     vector<int> a;
     932     a.clear();
     933     for (int i = 0; i < 10;i++)
     934     {
     935         a.push_back(i);
     936     }
     937     temp.push_back(a);
     938 
     939 
     940     vector<vector<int>>::iterator Iter = temp.begin();
     941     while (Iter != temp.end())
     942     {
     943         cout << *Iter << endl;
     944     }*/
     945 
     946 
     947 
     948 
     949 
     950 /*
     951     //命令行参数
     952     cout << "一共" << argc << "个参数" << endl;
     953 
     954     cout << argv[0] << endl;
     955     cout << argv[1] << endl;
     956     cout << argv[2] << endl;
     957     cout << argv[3] << endl;
     958     
     959     //但是一定要注意 argv的越界,空字符串的 特殊情况
     960     */
     961 
     962 
     963 
     964 
     965 
     966 /*
     967     这个列子很有意思,2次引用
     968     int a = 1;
     969     int &b = add_one(a);
     970     b++;
     971     cout << a << " " << b << endl;*/
     972     
     973 
     974 
     975 
     976     //hash_map
     977 
     978 
     979 /*
     980     注意这样取值是容易错误的 
     981 
     982 
     983     map<int, int> temp;
     984     temp.clear();
     985     int str = temp[2];
     986     cout << str << endl;
     987 */
     988 
     989 
     990 
     991 
     992 /*这个有点吊了,新标准的C++支持unicode和编译器设置 就可以使用 中文变量了
     993 
     994 unsigned char 潘正明;
     995 潘正明 = 123;
     996 cout << int(潘正明) << endl;
     997 
     998 */
     999 
    1000 
    1001 
    1002 /*
    1003     位元算 
    1004     unsigned int bits = 02;
    1005     cout << bits << endl;
    1006 
    1007     bits = ~bits;
    1008     cout << bits << endl;
    1009 */
    1010 
    1011 
    1012 /*
    1013     unsigned char b1 = 0145;
    1014     unsigned char b2 = 0257;
    1015     unsigned char result = b1 | b2;
    1016     cout << (int)result << endl;*/
    1017 
    1018 
    1019     /*bitset<32> temp;
    1020     int nSize = temp.size();
    1021     for (int i = 0; i < nSize;i = i + 2)
    1022     {
    1023         temp.set(i);
    1024     }
    1025 */
    1026 
    1027 
    1028 /*
    1029     bitset<3> bs(7);//用 7的二进制填充bs对象
    1030     cout << bs[0] << " " << bs[1] << " " << bs[2] << endl;
    1031     //cout << bs[3] << endl;//运行时异常
    1032 
    1033 
    1034     string strVal = "011";
    1035     bitset<3> bs1(strVal);//记住 string是反向填充 bitset对象
    1036     cout << bs1[0] << " " << bs1[1] << " " << bs1[2] << endl;
    1037     cout << bs1 << endl;//也可以直接输出bitset对象*/
    1038 
    1039 
    1040 /*
    1041     二进制
    1042 
    1043     cout << "-------------------------------------------->开始执行程序啦" << endl;
    1044     int *p = new int(111);
    1045     delete p;
    1046     p = 0;
    1047     cout << p << endl;
    1048 */
    1049 
    1050 /*
    1051     sizeof操作
    1052 
    1053     int nLen = 11;
    1054     cout << sizeof(nLen) << endl;
    1055     cout << sizeof(int) << endl;
    1056 
    1057     int x[] = { 2, 4, 6, 8, 10, 1, 3, 5, 7, 9 };
    1058 
    1059     for (int i = 0;i<sizeof(x)/sizeof(int);i++)
    1060     {
    1061         cout << x[i] << "    ";
    1062     }
    1063 
    1064     cout <<endl << "自定义数据类型Student的存储结构大小: " << sizeof(Student) << endl;*/
    1065 
    1066 
    1067     /*逗号表达式
    1068     int x[] = { 2, 4, 6, 8, 10, 1, 3, 5, 7, 9 };
    1069     for (int k = 0, cnt = 10; k < 10;++k,--cnt)
    1070     {
    1071         x[k] = cnt;
    1072     }
    1073 
    1074     //类似
    1075     int cnt = 10;
    1076     for (int k = 0; k < 10;++k)
    1077     {
    1078         x[k] = cnt;
    1079         cnt--;
    1080     }*/
    1081 
    1082 /*
    1083 
    1084     //枚举可以直接打印
    1085     cout << nAppend << endl;
    1086     cout << nY << endl;
    1087     cout << nZ << endl;
    1088 */
    1089 
    1090 /*
    1091 指针属于非引用参数
    1092 int a = 10;
    1093 AddThree(&a);
    1094 */
    1095     
    1096 
    1097     /*
    1098 二维数组
    1099     int m[][10] =
    1100     {
    1101         { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 },
    1102         { 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 },
    1103         { 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }
    1104     };
    1105     
    1106     printValue_5(m, 3);
    1107     */
    1108 
    1109 
    1110 /*递归    ,普通的循环就是迭代,遍历的意思
    1111 //DoA();
    1112 int nRet = Factorial(5);
    1113 cout << nRet << endl;
    1114 for (int i = 0; i <= 10;i++)
    1115 {
    1116     cout << i<<"!    = "<<Factorial(i) << endl;
    1117 }
    1118 */
    1119 
    1120 
    1121 
    1122 /*
    1123     cout << "****************" << endl;
    1124     cout << ::atoi("") << endl;//给""字符串,那么返回的是0
    1125 */
    1126 
    1127 
    1128 
    1129 
    1130 /*STL与指针
    1131     vector<string*> spvec;
    1132     string str;
    1133     cout << "Enter some strings (Ctrl+Z to end)" << endl;
    1134     while (cin >> str)
    1135     {
    1136         string *pstr = new string;
    1137         *pstr = str;
    1138         spvec.push_back(pstr);
    1139     }
    1140 
    1141     cout << "现在开始输出:" << endl;
    1142     vector<string*>::iterator Iter = spvec.begin();
    1143     while (Iter != spvec.end())
    1144     {
    1145         cout << *Iter << "    " << **Iter << endl;
    1146 
    1147         ++Iter;
    1148     }
    1149 
    1150 
    1151     //内存管理,释放内存
    1152     Iter = spvec.begin();//当前的Iter不是第一次声明的那个Iter .移动过了,所以要重新获取
    1153     while (Iter != spvec.end())
    1154     {
    1155         delete *Iter;
    1156         Iter++;
    1157     }
    1158 
    1159     */
    1160     
    1161 
    1162 
    1163 
    1164 
    1165 
    1166 
    1167 
    1168 
    1169 
    1170 
    1171 //以下是WindowsAPI编程
    1172 
    1173 
    1174     //这个很有趣,哈哈哈
    1175     //MessageBox(NULL, TEXT("panzhengming"), TEXT("命令行直接调用WindowsAPI"), MB_OK);
    1176 /*
    1177 LPSTR szString = "windows data type ,string";
    1178 CHAR lpString[120];
    1179 CopyMemory(lpString, szString, lstrlen(szString) + 1);
    1180 MessageBox(NULL, lpString, "aaa", MB_OK);
    1181 */
    1182 
    1183 /*读取文件
    1184 HANDLE hFileRead;
    1185 hFileRead = CreateFile(L"1.cpp", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
    1186 if (hFileRead == INVALID_HANDLE_VALUE)
    1187 {
    1188     printf("Can not open file ..error: %x
    ",GetLastError());
    1189     system("pause");
    1190     return -1;
    1191 }
    1192 
    1193 const int buf_size = 256;
    1194 CHAR buffer[buf_size];
    1195 DWORD nIn;
    1196 while (ReadFile(hFileRead, buffer, buf_size, &nIn, NULL) && nIn > 0)
    1197 {
    1198     printf("%s
    ", buffer);
    1199 }
    1200 
    1201 */
    1202 
    1203 
    1204 
    1205 /*
    1206 //读取文件属性
    1207 WIN32_FILE_ATTRIBUTE_DATA wData;
    1208 if (!GetFileAttributesEx(L"1.cpp", GetFileExInfoStandard, &wData))
    1209 {
    1210     system("pause");
    1211     return -1;
    1212 }
    1213 
    1214 PFILETIME lptime = &wData.ftCreationTime;
    1215 FILETIME ftLocal;
    1216 SYSTEMTIME st;
    1217 FileTimeToLocalFileTime(lptime, &ftLocal);
    1218 FileTimeToSystemTime(&ftLocal, &st);
    1219 printf("%d年%d月%d日, %d时%d分%d秒", st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond);
    1220 //cout << wData.ftCreationTime << "   " << wData.ftLastAccessTime << "   " << wData.ftLastWriteTime << endl;
    1221 printf("
    %d",wData.ftCreationTime);
    1222 */
    1223 
    1224 
    1225 /*
    1226 //获取文件目录
    1227 TCHAR szSystemDir[MAX_PATH];    //MAX_PATH windows定义目录长度最多260
    1228 GetSystemDirectory(szSystemDir, MAX_PATH);
    1229 printf("%s", szSystemDir);//--获取windows的系统安装目录,因为有人可能装在别的盘符里
    1230 */
    1231 
    1232 
    1233 /*
    1234 //宽字节
    1235 char只能存储 ASIC英文字符,不能保存中文字符,也就可以保存其他国家的字符
    1236     使用printf()输出
    1237 wchar_t c2 = L'中';        L不能省略,表示宽字符,新编的C语言有wchar_t类型
    1238     使用wprintf(L"%c",c2)输出
    1239     ---------------------------------------
    1240 
    1241 
    1242 
    1243 setlocale(LC_ALL, "");//使用宽字符输出的时候,要设置本地化设置,头文件是 #include <locale.h>
    1244 wchar_t c2 = L'中';
    1245 wprintf(L"%c", c2);//好像是2个字符算1个
    1246 
    1247 */
    1248 
    1249 
    1250 
    1251 /*
    1252 ansi 和 unicode 相互转化
    1253 
    1254 setlocale(LC_ALL, "");//本地区域,这样就可以使用 unicode
    1255 DWORD dwNum;
    1256 char sText[] = "ANSI多字节字符串 转 宽字符串";
    1257 dwNum = MultiByteToWideChar(CP_ACP, 0, sText, -1, NULL, 0);//先计算需要多大的存储空间
    1258 wchar_t *pwText;
    1259 pwText = new wchar_t[dwNum];
    1260 if (!pwText)
    1261 {
    1262     delete[] pwText;
    1263     return 1;
    1264 }
    1265 MultiByteToWideChar(CP_ACP, 0, sText, -1, NULL, dwNum);
    1266 wprintf(L"m->w:%s", pwText);
    1267 MessageBoxW(NULL, pwText, L"Text", MB_OK);
    1268 delete[] pwText;
    1269 
    1270 
    1271 wchar_t wText[] = L"宽字符串 转 多字节字符串";
    1272 dwNum = WideCharToMultiByte(CP_OEMCP, 0, wText, -1, NULL, 0, NULL, NULL);
    1273 char *psText;
    1274 psText = new char[dwNum];
    1275 if (!psText)
    1276 {
    1277     delete[] psText;
    1278     return 2;
    1279 }
    1280 WideCharToMultiByte(CP_OEMCP, 0, wText, -1, psText, dwNum, NULL, NULL);
    1281 printf("
    w->m  %s", psText);
    1282 MessageBoxA(NULL, psText, "Text", MB_OK);
    1283 */
    1284 
    1285 
    1286 
    1287 /*
    1288 
    1289     遍历逻辑卷,方法1   逻辑卷名
    1290 
    1291 const int bufsize = 1024;
    1292 wchar_t szLogicalDriverStrings[bufsize];
    1293 ZeroMemory(szLogicalDriverStrings, bufsize);
    1294 
    1295 GetLogicalDriveStrings(bufsize - 1, szLogicalDriverStrings);
    1296 //printf("%s 
    ", szLogicalDriverStrings);//这个是不能正常打印szLogicalDriverStrings  ,因为szLogicalDriverStrings的字符格式里面包含 ,所以printf()只能显示第一个盘符
    1297 PCHAR szDrive;
    1298 szDrive = (PCHAR)szLogicalDriverStrings;
    1299 do 
    1300 {
    1301     printf("%s
    ", szDrive);
    1302     szDrive = szDrive + 4; //这个地方是我手动写的,我转化不了下面的字符类型
    1303     //szDrive = szDrive + (lstrlen(szDrive) + 1);
    1304 } while (*szDrive != '');
    1305 */
    1306 
    1307 
    1308 /*
    1309 
    1310 遍历逻辑卷,方法2 设备名
    1311 
    1312 
    1313 const int  buf_size = 1024;
    1314 TCHAR buf[buf_size];
    1315 HANDLE hVol;
    1316 bool bFlag;
    1317 
    1318 hVol = FindFirstVolume(buf, buf_size);
    1319 if (hVol == INVALID_HANDLE_VALUE)
    1320 {
    1321     printf("no found volumes !
    ");
    1322     return 1;
    1323 }
    1324 
    1325 printf("%s 
    ",buf);
    1326 
    1327 */
    1328 
    1329 
    1330 /*
    1331 驱动器属性
    1332 GetDriveType();
    1333 GetVolumeInformation();
    1334 
    1335 这2个API没写代码,很简单,不会就百度下.感觉很好理解这个
    1336 */
    1337 
    1338 /*
    1339 磁盘容量
    1340     磁盘->簇->扇区->字节
    1341 
    1342 
    1343 
    1344 DWORD dwTotalClusters;
    1345 DWORD dwFreeClusters;
    1346 
    1347 DWORD dwSectPerCulust;
    1348 DWORD dwBytesPerSect;
    1349 
    1350 //需要传入盘符号
    1351 BOOL ret = GetDiskFreeSpace(TEXT("c:"), &dwSectPerCulust, &dwBytesPerSect, &dwFreeClusters, &dwTotalClusters);
    1352 if (!ret)
    1353 {
    1354     printf("11111111");
    1355 }
    1356 printf(" 使用GetDiskFreeSpace()uhoqu磁盘空间信息:
    ");
    1357 printf("总的簇数量:						%d
    ", dwTotalClusters);
    1358 printf("空闲的簇数量:						%d
    ", dwFreeClusters);
    1359 printf("每个簇的扇区数量是:					%d
    ", dwSectPerCulust);
    1360 printf("每个扇区字节数是:					%d
    ", dwBytesPerSect);
    1361  
    1362  //GetDiskFreeSpaceEx(); ke
    1363 */
    1364 
    1365 
    1366 
    1367 /*
    1368     文件操作的4种方式
    1369     1.C
    1370     2.C++
    1371     3.API
    1372     4.MFC
    1373 */
    1374 
    1375 
    1376 /*
    1377 
    1378     文件的 删除,移动/重命名,拷贝
    1379 
    1380 
    1381 DeleteFile();
    1382 MoveFile();
    1383 CopyFile()
    1384 */
    1385 
    1386 
    1387 /*
    1388 
    1389     文件内容拷贝
    1390     //c
    1391     fopen()
    1392     fread()
    1393     fwrite()
    1394     fclose()
    1395 
    1396 
    1397     //windows
    1398     CreateFile()
    1399     ReadFile()
    1400     WriteFile()
    1401     CopyFile()
    1402 
    1403 */
    1404 
    1405 
    1406 
    1407 /*
    1408 目录与模块
    1409 
    1410 
    1411 
    1412 CreateDirectory()
    1413 GetCurrentDirectory()
    1414 SetCurrentDirectory()
    1415 GetModuleFileName()
    1416 
    1417 
    1418 LoadLibrary()
    1419 */
    1420 
    1421 
    1422 
    1423 /*
    1424 遍历目录
    1425 FindFirstFile()
    1426 FindNextFile()
    1427 WIN32_FIND_DATA
    1428 
    1429 HANDLE
    1430 */
    1431 
    1432 
    1433 /*
    1434 文件属性和时间
    1435 FileTimeToLocalFileTime()//文件时间转化成本地时间
    1436 FileTimeToSystemTime()//本地时间转化成系统时间
    1437 GetFileAttributesEx()
    1438 //低位,高位,位元算
    1439 
    1440 
    1441 GetFileAttributes()
    1442 SetFileAttributes()
    1443 
    1444 */
    1445 
    1446 
    1447 
    1448 /*
    1449 
    1450 内存映射文件
    1451 
    1452 HANDEL hFile
    1453 CreateFile()
    1454 CreateFileMapping()
    1455 MapViewOfFile()
    1456 
    1457 
    1458 */
    1459 
    1460 
    1461 
    1462 
    1463 
    1464 /*
    1465 
    1466 系统信息1
    1467 
    1468 OSVERSIONINFO ovex;
    1469 TCHAR szVersionInfo[1024];
    1470 *szVersionInfo = NULL;
    1471 ovex.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
    1472 if (!GetVersionEx(&ovex))    //为啥这个函数编译不过去
    1473 {
    1474     printf("error ");
    1475     return 1;
    1476 }
    1477 
    1478 
    1479 */
    1480 
    1481 
    1482 /*
    1483 系统信息2
    1484     吗的,显示的不完全呀
    1485 
    1486 
    1487 
    1488 
    1489 TCHAR szDirName[MAX_PATH];
    1490 GetSystemDirectory(szDirName,MAX_PATH);
    1491 printf("系统目录:	 %s
    ", szDirName);            //好像不同的版本,目录路径 不一样
    1492 
    1493 GetWindowsDirectory(szDirName, MAX_PATH);
    1494 printf("windows目录:	 %s
    ", szDirName);        //window目录
    1495 
    1496 DWORD dwComputerNameLen = MAX_COMPUTERNAME_LENGTH + 1;
    1497 GetComputerName(szDirName, &dwComputerNameLen);    //计算机名
    1498 printf("计算机名:	 %s
    ", szDirName);
    1499 
    1500 GetUserName(szDirName, &dwComputerNameLen);        //用户名
    1501 printf("用户名:	 %s
    ", szDirName);
    1502 
    1503     
    1504 BOOL fret;
    1505 int aMouseInfo[3];
    1506 fret = SystemParametersInfo(SPI_GETMOUSE, 0, &aMouseInfo, 0);// spi是外设的意思
    1507 if (fret)
    1508 {
    1509     aMouseInfo[2] = 4 * aMouseInfo[2];//设置鼠标移动速度
    1510     SystemParametersInfo(SPI_GETMOUSE, 0, aMouseInfo, SPIF_SENDCHANGE);
    1511 }
    1512 
    1513 printf("ok
    ");
    1514 
    1515 */
    1516 
    1517 
    1518 
    1519 
    1520 
    1521 /*
    1522 时间
    1523 
    1524 
    1525 //获取时间
    1526 SYSTEMTIME st;
    1527 GetLocalTime(&st);//本地时间
    1528 printf("Now:%d-%d-%d, %d:%d:%d
    ", st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond);
    1529 
    1530 
    1531 //修改时间,通过结构体字段来实现
    1532 st.wHour = 11;
    1533 SetLocalTime(&st);
    1534 printf("Now:%d-%d-%d, %d:%d:%d
    ", st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond);
    1535 
    1536 
    1537 //开机到现在的持续时间                单位是毫秒
    1538 DWORD c1 = GetTickCount();            //这个保存的时间太短,类型决定的
    1539 ULONGLONG c2 = GetTickCount64();    //常用的是这个,  高版本的windows会有这个函数
    1540 printf("%d    %d", c1, c2);
    1541 
    1542 
    1543 //随机数
    1544 const int total = 10000;
    1545 int nums[total];
    1546 srand(GetTickCount64());            //设置随机种子..还是不太了解
    1547 
    1548 for (int i = 0; i < total;i++)
    1549 {
    1550     nums[i] = rand() % 1000;
    1551     printf("%d
    ", nums[i]);
    1552 }
    1553 
    1554 
    1555 //快速排序
    1556 //qsort(nums, total, sizeof(nums[0]), func_cmp); 这个没写,暂时不想写
    1557 int nStartTime = GetTickCount();
    1558 int nEndTime = GetTickCount();
    1559 
    1560 */
    1561 
    1562 
    1563 /*
    1564 注册表  读写
    1565 
    1566 //读
    1567 HKEY hKey;
    1568 TCHAR tchData[64];
    1569 long lRet = RegOpenKey(HKEY_LOCAL_MACHINE, _T("hardware\description\system\centralprocessor\0"), &hKey);
    1570 if (ERROR_SEVERITY_SUCCESS == lRet)//成功
    1571 {
    1572     DWORD dwSize = sizeof(tchData);
    1573     lRet = RegQueryValueEx(hKey, _T("ProcessorNameString"), NULL, NULL, (LPBYTE)tchData, &dwSize);
    1574 
    1575     if (ERROR_SEVERITY_SUCCESS == lRet)
    1576     {
    1577         printf("%s
    ", tchData);
    1578     }
    1579 }
    1580 
    1581 RegCloseKey(hKey);    //代码是这样的,但是编译不通过
    1582 
    1583 
    1584 //写
    1585 
    1586 HKEY hKey;
    1587 RegCreateKey(HKEY_LOCAL_MACHINE,_T("xxxx\xxx\xxx"),&hKey);
    1588 RegSetValue(hKey, NULL, REG_SZ, _T("Liebao"), 6);                                            //这个API只能添加默认的
    1589 DWORD dwAge = 30;
    1590 RegSetValueEx(hKey, _T("新增的用RegSetValueEx()"), 0, REG_DWORD, (CONST BYTE*)&dwAge, 4);    //这个可以新增新的key
    1591 RegCloseKey(hKey);
    1592 
    1593 */
    1594 
    1595 
    1596 
    1597 
    1598 /*
    1599 内存信息
    1600 
    1601 
    1602 MEMORYSTATUSEX memstatsex;
    1603 memstatsex.dwLength = sizeof(memstatsex);
    1604 
    1605 GlobalMemoryStatusEx(&memstatsex);
    1606 printf("全部物理内存: %I64u 字节
    ", memstatsex.ullTotalPhys);
    1607 printf("可用物理内存: %I64u 字节
    ", memstatsex.ullAvailPhys);
    1608 printf("全部虚拟内存: %I64u 字节
    ", memstatsex.ullTotalVirtual);
    1609 printf("可用虚拟内存: %I64u 字节
    ", memstatsex.ullAvailVirtual);
    1610 printf("全部页面文件: %I64u 字节
    ", memstatsex.ullTotalPageFile);
    1611 printf("可用页面文件: %I64u 字节
    ", memstatsex.ullAvailPageFile);
    1612 
    1613 
    1614 */
    1615 
    1616 /*
    1617 系统信息
    1618 SYSTEM_INFO sinf;
    1619 GetSystemInfo(&sinf);
    1620 */
    1621 
    1622 
    1623 
    1624 
    1625 
    1626 /*
    1627 
    1628 堆内存
    1629 
    1630 
    1631 SYSTEM_INFO si;
    1632 HANDLE hHeap1, hHeap2;
    1633 DWORD dwHeapNum;
    1634 
    1635 GetSystemInfo(&si);
    1636 hHeap1 = HeapCreate(HEAP_NO_SERIALIZE, si.dwPageSize * 2, si.dwPageSize * 10);//堆的页面最小,最大设置
    1637 if (hHeap1 == NULL)
    1638 {
    1639     printf("创建堆失败
    ");
    1640     return 1;
    1641 }
    1642 printf("创建堆成功,初识页面2页,最大是10页
    ");
    1643 
    1644 
    1645 hHeap2 = HeapCreate(HEAP_NO_SERIALIZE, 0, 0);//如果不写明的,初始的大小向上取值,最大不限制
    1646 printf("创建堆成功,初识页面1页,最大不限制
    ");
    1647 
    1648 dwHeapNum = GetProcessHeaps(0, NULL);
    1649 if (0 == dwHeapNum)
    1650 {
    1651     printf("进程至少有个默认堆");
    1652     return 1;
    1653 }
    1654 cout << dwHeapNum << endl;
    1655 
    1656 
    1657 
    1658 PVOID lpMem1, lpMem2;
    1659 lpMem1 = HeapAlloc(hHeap1, HEAP_ZERO_MEMORY, si.dwPageSize * 3);
    1660 if (lpMem1 == NULL)
    1661 {
    1662     printf("error");
    1663     return 1;
    1664 }
    1665 
    1666 printf("在堆上分配内存成功,起始地址: 0x%x
    ", lpMem1);
    1667 
    1668 
    1669 */
    1670 
    1671 
    1672 
    1673 
    1674 /*
    1675 内存的常用操作
    1676 */
    1677 
    1678 
    1679 
    1680 
    1681 
    1682 
    1683 
    1684 //算法
    1685 /*
    1686 
    1687 冒泡
    1688 
    1689 
    1690 {
    1691 
    1692     const int nSize = 10;
    1693     //int list[nSize] = { 1, 3, 5, 7, 9, 2, 4, 6, 8, 0 };
    1694     int list[nSize] = { 11, 33, 55, 77, 999, 222, 44, 66, 88, 10 };
    1695 
    1696 
    1697     int a = sizeof(list)/sizeof(int);
    1698 
    1699 
    1700     cout << "原始数据:    ";
    1701     for (int i = 0; i < nSize; i++)
    1702     {
    1703         cout << list[i] << "  ";
    1704     }
    1705     cout << endl;
    1706     cout << endl;
    1707 
    1708     //外层循环是趟数
    1709     for (int n = 0; n < nSize;n++)
    1710     {
    1711         cout << "第" << n + 1 << "趟:    ";
    1712 
    1713         //内层循环比较大小
    1714         for (int i = 0; i < nSize - 1;i++)
    1715         {
    1716             if (list[i] > list[i+1])
    1717             {
    1718                 swap(list[i], list[i + 1]);
    1719             }
    1720         }
    1721 
    1722         for (int i = 0; i < nSize; i++)
    1723         {
    1724             cout << list[i] << "  ";
    1725         }
    1726 
    1727         cout << endl;
    1728         
    1729     }
    1730     cout << "-----------------------" << endl;
    1731     for (int i = 0; i < nSize;i++)
    1732     {
    1733         cout << list[i] << "  ";
    1734     }
    1735 
    1736 
    1737 }
    1738 
    1739 
    1740 */
    1741 
    1742 
    1743 
    1744 
    1745 
    1746 /*
    1747     #define 的用法,3个特殊的符号  
    1748         # 
    1749         ## 
    1750         #@
    1751 */
    1752 
    1753 
    1754 
    1755 //用指针访问对象的成员
    1756 TestObject *p = new TestObject;
    1757 cout << sizeof(p) << endl;
    1758 
    1759 
    1760 
    1761 
    1762 
    1763 
    1764 
    1765 
    1766 
    1767 
    1768 
    1769 
    1770 
    1771 
    1772 
    1773 
    1774 
    1775 
    1776 
    1777 
    1778 
    1779 
    1780 
    1781 
    1782 
    1783 
    1784 
    1785 
    1786 
    1787 
    1788 
    1789 
    1790 
    1791 
    1792 
    1793 
    1794 
    1795 
    1796 
    1797 
    1798 
    1799 
    1800 
    1801 
    1802 
    1803 
    1804 
    1805 
    1806 
    1807 
    1808 
    1809 
    1810 
    1811 
    1812 
    1813 
    1814 
    1815 
    1816 
    1817 
    1818 
    1819 
    1820 
    1821 
    1822 
    1823 
    1824 
    1825 
    1826 
    1827 
    1828 
    1829 
    1830 
    1831 
    1832 
    1833 
    1834 
    1835 
    1836 
    1837 
    1838 
    1839 
    1840 
    1841 
    1842 
    1843 
    1844 
    1845 
    1846 
    1847 
    1848 
    1849 
    1850 
    1851 
    1852 
    1853 
    1854 
    1855 
    1856 
    1857 
    1858 
    1859 
    1860 
    1861 
    1862 
    1863 
    1864 
    1865 
    1866 
    1867 
    1868 
    1869 
    1870 
    1871 
    1872 
    1873 
    1874 
    1875 
    1876 
    1877 
    1878 
    1879 
    1880 
    1881 
    1882 
    1883 
    1884 
    1885 
    1886 
    1887 
    1888 
    1889 
    1890 
    1891 
    1892 
    1893 
    1894 
    1895 
    1896 
    1897 
    1898 
    1899 
    1900 
    1901 
    1902 
    1903 
    1904 
    1905 
    1906 
    1907 
    1908 
    1909 
    1910 
    1911 
    1912 
    1913 
    1914 
    1915 
    1916 
    1917 
    1918 
    1919 
    1920 
    1921     cout << endl;
    1922     system("pause");
    1923     return 0;
    1924 }
  • 相关阅读:
    批处理实现mysql的备份
    paper 8:支持向量机系列五:Numerical Optimization —— 简要介绍求解求解 SVM 的数值优化算法。
    paper 7:支持向量机系列四:Outliers —— 介绍支持向量机使用松弛变量处理 outliers 方法。
    paper 6:支持向量机系列三:Kernel —— 介绍核方法,并由此将支持向量机推广到非线性的情况。
    paper 5:支持向量机系列二: Support Vector —— 介绍支持向量机目标函数的 dual 优化推导,并得出“支持向量”的概念。
    paper 4:支持向量机系列一: Maximum Margin Classifier —— 支持向量机简介。
    paper 3:matlab中save,load使用方法小结
    paper 2:图像处理常用的Matlab函数汇总
    paper 1:图像特征提取
    学习用CMake来编写Qt程序
  • 原文地址:https://www.cnblogs.com/Froger/p/6994028.html
Copyright © 2011-2022 走看看