C++关于容器vector的使用方法以及#ifdef #else #endif #if #ifndef 的使用

//此处根据0还是1来判断具体使用那一段主函数

#if 0
    #define WAY
#endif

#ifdef WAY
#include <iostream>
#include<string.h>
#include<stdio.h>
#include<algorithm>
#include<vector>

#include <iomanip>
using namespace std;
int g_width=4;
int main() {

/*将数组赋值给vector的方法*/
    int  a[10]={1,2,3,4,5,6,7,8,9,10};
    cout <<"sizeof(a)"<<(sizeof(a)/sizeof(int))<<endl;
    vector<int> vec(a,a+(sizeof(a)/sizeof(int)));
            
    //容器的逆序排列
    reverse(vec.begin(),vec.end());

    //vector<int>::iterator i;
    cout.width(g_width);
    cout<<"a=";
    for(int  i=0;i<10;i++)
    {
        cout.width(g_width);
        cout <<setiosflags(ios::internal)<< a[i];
    }
    cout << endl;
    cout.width(g_width);
    //cout.fill(9);
    cout<<"vec=";
    for(int  i=0;i<10;i++)
    {
        //cout格式化输出,位宽为4个字节
        cout.width(g_width);
        cout<< vec[i];
    }
cout << endl;
    
    return 0;
}
#else

#include <iostream>     // std::cout
#include <algorithm>    // std::fill

using namespace std;

int main () {
    int array[8]={0};                       // myvector: 0 0 0 0 0 0 0 0

    cout<<"=======begin======="<<"\n"; 
    for (int i = 0;i< 8;i++)
        cout << ' ' << array[i];
    cout << '\n'<<'\n';

    fill (array,array+4,9);   // myvector: 5 5 5 5 0 0 0 0
    fill (array+3,array+6,9);   // myvector: 5 5 5 8 8 8 0 0

    cout<<"=======after fill======="<<"\n"; 
    for (int i = 0;i< 8;i++)
        cout << ' ' << array[i];
    cout << '\n'<<'\n';

    /*这里的用法和memset类似,但是看来还是memset使用起来方便*/
    const int a=sizeof(array)/sizeof(int);
    fill (array,array+a,0);  
    for (int i = 0;i< 8;i++)
        cout << ' ' << array[i];
    cout << '\n'<<'\n';

    return 0;
}
#endif

 

posted @ 2020-04-20 18:17  怎因一双媚眼惹尘埃  阅读(261)  评论(0编辑  收藏  举报