C++容器中常用的API函数

这篇笔记详细介绍了C++中的容器如vector、unordered_map、stack、queue、set及其常用API,包括二分查找lower_bound、upper_bound、binary_search等。此外,还涉及了sort、find、fill等算法函数的使用。
摘要由CSDN通过智能技术生成

随手笔记

二分查找

lower_bound

lower_bound( begin,end,num):从数组的begin位置到end-1位置二分查找第一个大于或等于num的数字,找到返回该数字的地址,不存在则返回end。通过返回的地址减去起始地址begin,得到找到数字在数组中的下标。

upper_bound

upper_bound( begin,end,num):从数组的begin位置到end-1位置二分查找第一个大于num的数字,找到返回该数字的地址,不存在则返回end。通过返回的地址减去起始地址begin,得到找到数字在数组中的下标。

binary_search

binary_search(起始地址,结束地址,要查找的数值) 返回的是是否存在这么一个数,是一个bool值。

pair<>

返回两个参数

    auto [count0, count1] = count(s);

    pair<int, int> count(const string & s) {
   
    	.....
        return make_pair(count0, count1);
    }

容器

在这里插入图片描述

公共部分的API

sort

sort(nums.begin(), nums.end(), greater<int>()); // 降序排列
sort(nums.begin(), nums.end(), less<int>());  // 升序排列

begin() end()

size()

Return Value
返回类型为无符号整型,容器大小

empty()

Return Value
如果容器大小为零,则返回true,否则返回false

string

find()

    string str = "abc";
    if (str.find("ab") != string::npos) {
   
        cout << "is ok!" << endl;
    }
    if (str.find('a') != str.npos) {
   
        cout << "is ok!" << endl;
    }

push_back()

stoi() stol() stoll()

stof() stod()

to_sting()

substr()

priori_queue

大顶堆

//对于基础类型 默认是大顶堆
priority_queue<int> a; 
//等同于 priority_queue<int, vector<int>, less<int> > a;

小顶堆

priority_queue<int, vector<int>, greater<int> > c;  //这样就是小顶堆

公共API

empty
Test whether container is empty (public member function )
size
Return size (public member function )
top
Access top element (public member function )
push
Insert element (public member function )
emplace 
Construct and insert element (public member function )
pop
Remove top element (public member function )
swap 
Swap contents (public member function )

1.vector

关于初始化

  vector<int> v = {
   5,10,15}; // 初始化元素
  vector<int> v(10, 0);  // 初始大小及初始值
  sort(vector.begin(), vector.end()); // 排序


push_back()

// vector::push_back
#include <iostream>
#include <vector>

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

  std::cout << "Please enter some integers (enter 0 to end):\n";

  do {
   
    std::cin >> myint;
    myvector.push_back (myint);
  } while (myint);

  std::cout << "myvector stores " << int(myvector.size()) << " numbers.\n";

  return 0;
}

pop_back()

// vector::pop_back
#include <iostream>
#include <vector>

int main ()
{
   
  std::vector<int> myvector;
  int sum (0);
  myvector.push_back (100);
  myvector.push_back (200);
  myvector.push_back (300);

  while (!myvector.empty())
  {
   
    sum+=myvector.back();
    myvector.pop_back();
  }

  std::cout << "The elements of myvector add up to " << sum << '\n';

  return 0;
}

insert

注意

  • 可将一个数组直接加入到vector中
  • 将一个vector加入到另一个vector中
// inserting into a vector
#include <iostream>
#include <vector>

int main ()
{
   
  std::vector<int> myvector (3,100);
  std::vector<int>::iterator it;

  it = myvector.begin();
  it = myvector.insert ( it , 200 );

  myvector.insert (it,2,300);

  // "it" no longer valid, get a new one:
  it = myvector.begin();

  std::vector<int> anothervector (2,400);
  myvector.insert (it+2,anothervector.begin(),anothervector.end());

  int myarray [] = {
    501,502,503 };
  myvector.insert (myvector.begin(), myarray, myarray+3);

  std::cout << "myvector contains:";
  for (it=myvector.begin(); it<myvector.end(); it++)
    std::cout << ' ' << *it;
  std::cout << '\n';

  return 0;
}

resize

// resizing vector
#include <iostream>
#include <vector>

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

  // set some initial content:
  for (int i=1;i<10;i++) myvector.push_back(i);

  myvector
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值