vector

vector
1 生成构造
// constructing vectors
#include <iostream>
#include <vector>

int main ()
{
  // constructors used in the same order as described above:
  std::vector<int> first;                                // empty vector of ints
  std::vector<int> second (4,100);                       // four ints with value 100
  std::vector<int> third (second.begin(),second.end());  // iterating through second
  std::vector<int> fourth (third);                       // a copy of third

  // the iterator constructor can also be used to construct from arrays:
  int myints[] = {16,2,77,29};
  std::vector<int> fifth (myints, myints + sizeof(myints) / sizeof(int) );

  std::cout << "The contents of fifth are:";
  for (std::vector<int>::iterator it = fifth.begin(); it != fifth.end(); ++it)
    std::cout << ' ' << *it;
  std::cout << '\n';
//fifth=16 2 77 29
  return 0;
}


  std::vector<int> foo (3,0);
  std::vector<int> bar (5,0);
  bar = foo;
  foo = std::vector<int>();
  std::cout << "Size of foo: " << int(foo.size()) << '\n';//0
  std::cout << "Size of bar: " << int(bar.size()) << '\n';//3
2 操作
2.1 大小和容量
#include <iostream>
#include <vector>

int main ()
{
     std::vector<int> myvector;

     for (int i=1; i<=5; i++) myvector.push_back(i);
     //capacity
     std::cout<<myvector.size(); //return size of 5
     myvector.resize(9);         //change size become 9
     std::cout<<myvector.empty();//return 0,it is not empty
     myvector.reserve(100);      //change capacity to 100
     std::cout<<myvector.capacity();
     myvector.shrink_to_fit();   //let size equality capacity ,now capacity is 9

     return 0;
}
2.2 比较
2.3 find
2.4 截取部分
2.5 增,插,删,改
#include <iostream>
#include <vector>

int main ()
{
     std::vector<int> myvector;

     for (int i=1; i<=5; i++) myvector.push_back(i);
     //modify access
     myvector.assign(3,100);    //myvector={100,100,100}    reinit elemnet
     myvector.push_back(1);     //myvector={100,100,100,1}  add on last
     myvector.pop_back();       //myvector={100,100,100}    delete on last,return last element

     myvector.insert(myvector.begin()+2,200);  //200 at 3th element ,myvector={100,100,200,100}
     int ints[]={1,1,1};
     myvector.insert(iti,ints,ints+3);//myvector={100,100,1,1,1,200,100}

     myvector.erase(myvector.begin()+2);//myvector={100,100,1,1,200,100}
     myvector.erase(myvector.begin()+2,myvector.begin()+5);//myvector={100,100,100}
     myvector.clear();             //clear myvector={}

     return 0;
}
2.6迭代器
//begin() and end()
int main ()
{
    std::vector<int> myvector;
     for (int i=1; i<=5; i++) myvector.push_back(i);

     std::cout << "myvector contains:";
     for (std::vector<int>::iterator it = myvector.begin() ; it != myvector.end(); ++it)
       std::cout << ' ' << *it;//1 2 3 4 5
     std::cout << '\n';

     return 0;
}


//rbegin() and rend()

#include <iostream>
#include <vector>

int main ()
{
    std::vector<int> myvector;
     for (int i=1; i<=5; i++) myvector.push_back(i);

     std::cout << "myvector contains:";
     for (std::vector<int>::reverse_iterator rit = myvector.rbegin() ; rit != myvector.rend(); ++rit)
       std::cout << ' ' << *rit;//5 4 3 2 1
     std::cout << '\n';

     return 0;
}

//可以使用auto
#include <iostream>
#include <vector>

int main ()
{
    std::vector<int> myvector;
     for (int i=1; i<=5; i++) myvector.push_back(i);

     std::cout << "myvector contains:";
     for (auto cit = myvector.cbegin() ; cit != myvector.cend(); ++cit)//can crbegin() 5 4 3 2 1
       std::cout << ' ' << *cit;//5 4 3 2 1
     std::cout << '\n';
     return 0;
}
2.7取值和位置
#include <iostream>
#include <vector>

int main ()
{
     std::vector<int> myvector;

     for (int i=1; i<=5; i++) myvector.push_back(i);
     //element access
     int intger1=myvector[2];       //operator[] ,intger1=2
     std::cout<<myvector.at(2);     //output 2
     std::cout<<myvector.back();    //last element 5
     std::cout<<myvector.front();   //first element 1
     int *p=myvector.data();        //p=&myvector[0]
     *p=10;p[2]=30;                 //now myvector={10,2,30,4,5}
     return 0;
}
2.8其他swap
// swap (vector overload)
#include <iostream>
#include <vector>

main ()
{
  unsigned int i;
  std::vector<int> foo (3,100);   // three ints with a value of 100
  std::vector<int> bar (5,200);   // five ints with a value of 200
  foo.swap(bar);//foo={200,200,200,200,200} and bar={100,100,100}
  return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
05-29
在 C++ 中,vector 是一个动态数组容器,可以存储任意类型的数据。使用 vector 可以方便地进行动态内存分配和管理,而不需要手动进行内存分配和释放。 vector 提供了一系列的成员函数,可以方便地进行元素的插入、删除、查找和访问等操作。以下是一些常用的操作: 1. 创建 vector 对象: ```c++ #include <vector> std::vector<int> vec; // 创建一个空的 vector std::vector<int> vec1(10); // 创建一个包含 10 个默认值的 vector std::vector<int> vec2(10, 0); // 创建一个包含 10 个值为 0 的 vector std::vector<int> vec3 = {1, 2, 3, 4}; // 创建一个包含 4 个元素的 vector,初始值为 1, 2, 3, 4 std::vector<int> vec4(vec3); // 创建一个与 vec3 完全相同的新 vector ``` 2. 访问 vector 中的元素: ```c++ std::vector<int> vec = {1, 2, 3, 4}; std::cout << vec[0] << std::endl; // 访问第一个元素,输出 1 std::cout << vec.at(2) << std::endl; // 访问第三个元素,输出 3 std::cout << vec.front() << std::endl; // 访问第一个元素,输出 1 std::cout << vec.back() << std::endl; // 访问最后一个元素,输出 4 ``` 3. 插入和删除元素: ```c++ std::vector<int> vec = {1, 2, 3, 4}; vec.push_back(5); // 在末尾插入元素 5 vec.insert(vec.begin() + 2, 10); // 在第三个位置插入元素 10 vec.erase(vec.begin() + 1); // 删除第二个元素 ``` 4. 获取 vector 中的信息: ```c++ std::vector<int> vec = {1, 2, 3, 4}; std::cout << vec.size() << std::endl; // 输出 vector 的大小,即元素个数,输出 4 std::cout << vec.empty() << std::endl; // 判断 vector 是否为空,输出 0(因为不为空) ``` vector 还提供了一些其他的函数,如排序、反转、查找等,具体可以参考 C++ 标准库的文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值