find
algorithm下的。
C++中对于STL容器查找某个元素是否存在,一律使用algorithm下的find函数。
例如:find( it1 , it2 , 值)返回值是一个迭代器,对于string,vector可以通过减去begin找到下标,因为他们底层是数组,但是对于set 缺不行,因为他们底层实现是红黑树。
对于map查看key是否存在不可以使用find,用自己的方法mp.count(值)来判断。
set也可以使用st.count(值得)判断。
reverse
algorithm下的
reverse( it1 , it2 ) 进行翻转,没有返回值。
string
str = s.substr(index , len ) 截取字符串中的某一长度。返回值是string
s.erase(it1 , it2 );删除一部分,无返回值
vector
v.push_back();添加元素
v.pop_back();删除最尾元素
v.erase(it1 , it2 );删除一部分,无返回值
v.insert(it , x);
set
st.insert();添加元素
st.erase(it1 , it2 );删除一部分,无返回值
遍历:
set < int > ::iterator it=st.begin();
for(;it++;it!=st.end())
{
}
map
mp.insert();添加元素
mp.erase(it1 , it2 );删除一部分,无返回值
遍历:
map < int,int > ::iterator it=mp.begin();
for(;it++;it!=st.end())
{
cout<< it->first << it->second;
}
stack
push();加入元素
top();栈顶元素
pop();弹出栈顶元素
empty();判断是否为空
queue
push()
front()
pop()
empty()
lower_bound()和upper_bound();
进行二分查找,底层就是通过二分实现的。看过他们他们的实现的话就会发现他们底层就一个等于号不同。
lower_bound():查找第一个大于等于的数,返回值是一个地址
lower_upper():查找第一个大于的数,返回值是一个地址