bloggerads

2013年10月30日 星期三

C++的Container: Vector使用範例

一般C語言如果想要動態增加陣列大小,則必須要呼叫 realloc()。C++提供了vector更靈活的使用陣列,請參考如下的範例:

#include <stdio.h>
#include <vector>

void print(char x, std::vector<int> &vec) // Call by Reference
{
    printf("%c.", x);
    for (int i=0; i<vec.size(); i++)
        printf(" %d", vec[i]);
    puts("");
}

int main()
{  
   std::vector<int> vec;// vector<int> vec(10, 0); //初始size為10個0
   std::vector<int>::iterator end;
     
   vec.push_back(10);  print('a', vec);
   vec.push_back(20);  print('b', vec);
   vec.insert(vec.begin() + 1, 30); // 將30插入陣列中第1個位置
   //vec.insert(vec.begin() + 1, 2, 30); // 將兩個30插入陣列中第1個位置
   print('c', vec);
   //auto end=vec.end()-1;     //  -std=c++11 
   vec.erase(end=vec.end()-1); // 移除最後一個元素
   print('d', vec);
   vec.pop_back();    // 移除最後一個元素
   print('f', vec);
   
   return 0;
}


輸出:
a. 10
b. 10 20
c. 10 30 20
d. 10 30
f. 10

沒有留言:

張貼留言