数组内两数之和为target—2022-06-27

2022-06-27  本文已影响0人  李明成

vector的使用

inlcude <vector>

初始化

vector<int> v1;   // 最常用的使用方式
vector<father> v2;
vector<string> v3;
vector<vector<int> >;  //注意空格。这里相当于二维数组int a[n][n];
vector<int> v5 = { 1,2,3,4,5 }; //列表初始化,注意使用的是花括号,可以直接返回匿名{1,2}
vector<string> v6 = { "hi","my","name","is","lee" };
vector<int> v7(5, -1); //初始化为-1,-1,-1,-1,-1。第一个参数是数目,第二个参数是要初始化的值
vector<string> v8(3, "hi"); // 注意小括号内是指定多少个什么样的数据
vector<int> v9(10); //默认初始化为0
vector<int> v10(4); //默认初始化为空字符串

添加元素
push_back
遍历元素

for(int i =0; i< it.size();i++){
     vi[i] = 9; //元素的访问
}
vector<int>::iterator im = it.begin();
for (;im!=it.end();it++){
    cout << *iter << endl;
    //下面两种方法都都可以检查迭代器是否为空
    cout << (*iter).empty() << endl;
    cout << iter->empty() << endl;
}

插入元素

std::vector<int> demo{1,2};
    //第一种格式用法
    demo.insert(demo.begin() + 1, 3);//{1,3,2}
 
    //第二种格式用法
    demo.insert(demo.end(), 2, 5);//{1,3,2,5,5}
 
    //第三种格式用法
    std::array<int,3>test{ 7,8,9 };
    demo.insert(demo.end(), test.begin(), test.end());//{1,3,2,5,5,7,8,9}
 
    //第四种格式用法
    demo.insert(demo.end(), { 10,11 });//{1,3,2,5,5,7,8,9,10,11}
 
    for (int i = 0; i < demo.size(); i++) {
        cout << demo[i] << " ";
    }

删除元素:
删除尾部元素 pop_back();
删除指定元素

vector<int>demo{ 1,2,3,4,5 };
    auto iter = demo.erase(demo.begin() + 1);//删除元素 2
    //输出 dmeo 容器新的size
    cout << "size is :" << demo.size() << endl;
    //输出 demo 容器新的容量
    cout << "capacity is :" << demo.capacity() << endl;
    for (int i = 0; i < demo.size(); i++) {
        cout << demo[i] << " ";
    }
    //iter迭代器指向元素 3
    结果:
    cout << endl << *iter << endl;
    size is :4
    capacity is :5
    1 3 4 5
    3
    erase() 函数在删除元素时,会将删除位置后续的元素陆续前移,并将容器的大小减 1,但是不改变容量

C中无数组?

Python的实现

go的实现

上一篇下一篇

猜你喜欢

热点阅读