set是关联式容器,有自动去重和排序的功能。C++ STL中标准关联容器set, multiset, map, multimap内部采用的就是一种非常高效的平衡检索二叉树:红黑树,也成为RB树(Red-Black Tree)。RB树的统计性能要好于一般平衡二叉树,所以被STL选择作为了关联容器的内部结构。begin() ,返回set容器的第一个元素end() ,返回set容器的最后一个元素clear() ,删除set容器中的所有的元素empty() ,判断set容器是...
1.set的基本操作:begin() 返回指向第一个元素的迭代器clear() 清除所有元素count() 返回某个值元素的个数empty() 如果集合为空,返回trueend() 返回指向最后一个元素的迭代器equal_range() 返回集合中与给定值相等的上下限的两个迭代器erase() 删除集合中的元素find() 返回一个指向被查找到元素的迭代器get_allocator() 返回集合的分配器insert() 在集合中插入元素lower_bound() 返回指向大于(或等于)某值的第一个元素的迭代器k...
要先std::sortstd::set_differencestd::set_union原文:http://www.cnblogs.com/anjsxz/p/3725320.html
package com.swift;import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;publicclass Collections {publicstaticvoid main(String[] args) {/** 完成以下需求:*创建一个存储字符串的集合list,向list中添加以下字符串:”C++”、”Java”、” Python”、”大数据与云计算”。*遍历集合,将长度小于5的字符串从集合中删除。*删除成功后,打印集合中的所有元素。*PS:控制台打印示例*/List<String> ...
C++是一个编译器会替你在背后做很多事情的语言,包括模板实例化,按需要创造隐式的构造函数,默认构造你没有显式构造的成员,按需进行隐式转换和饮食构造等等,如果没有彻底了解清楚,就容易被这些编译器背后做好的事情坑到,这个系列文章就来总结我在写C++时遇到的各种坑。 所谓隐式调用和默认实现的构造函数,当你写一个赋值语句的时候,编译器会首先检查两个类型又没有直接实现的赋值函数,然后检查赋值左右的类型是否能做隐式转...
最后一个自由支配的暑假,学一些自己感兴趣的部分,也算为大三作准备。C++中set集合的使用定义一个int类型的集合set<int> s;set<int>::iterator it;基本操作有如下:s.inert(10);//插入元素10s.erase(10);//删除元素10s.clear();//清空集合s.size();//集合元素的个数s.empty();//判断集合是否为空it=s.find(10);//查找集合中是否有元素10,有的话返回10,没有返回s.end();首先集合在数学的概念中就是互异性,不能有重复需要注意的...
反转单向链表
void ReverseList(Node* head) {//反转带头节点指针的单向链表Node* pre = NULL;Node* cur = head->next;Node* nex = cur->next;while (cur != NULL) {cur->next = pre;pre = cur;cur = nex;nex = (nex == NULL) ? NULL : nex->next; }head->next = pre;}
来自wintree 原文连接 https://blog.csdn.net/wallwind/article/details/6827863
rember thisstrncpy(a,b,5);
a[5]='\0';char a[10];
memset(a,'#',sizeof(a));
a[10]='\0';刚开始学C/C++时,一直对字符串处理函数一知半解,这里列举C/C++字符串处理函数,希望对初学者有一定的帮助。C:char st[100];
1. 字符串长度strlen(st);2. 字符串比较strcmp(st1,st2);strncmp(st1,st2,n); 把st1,st2的前n个进行比较。3. 附加strcat(st1,s...
#include <iostream> #include <windows.h> #include <time.h> #include <list> #include <conio.h> //#include<stdio.h> //#include<string.h>using namespace std;#define up w #define down s #define left a #define right d
char name[20]; // 保存用户名 有兴趣可以制作登录系统 int score = 0; // 分数 char click = 1; // 记录敲下的键盘按键 int speed = 10; // 速度 其实是延迟的毫秒数
class Snake { public: ...
1.部分集合/有序数组操作
C++的set操作其实只是代表有序集合。
对比操作set_difference
set_intersection
set_union
set_symmetric_difference
include合并操作merge
implace_merge#include <algorithm>
#include <vector>
#include <iostream>using namespace std;int main() {// must be sortedvector<int> a {1,2,3,4,5,6}, b{4,5,6,7,8}, c;// random_shuffle(a.begin(), a.end());// random_shuffle(b.begin(), b.end());set_...
set 和 multiset
头文件:< set >
内部使用类似二叉树的方式实现,不能够替换或者直接修改指定位置的元素,但是能够对元素进行排序并实现快速查找建。实例化
默认谓词:std::less,实现升序排列
实例化一个升序排列的set或者multiset(也可以直接greater< type >)// used as a template parameter in set / multiset instantiation
template <typename T>
struct SortDescending{
bool operator()(const T& lhs, const T& rhs) co...
30.Algorithm Gossip: m 元素集合的n 个元素子集
说明
假设有个集合拥有m个元素,任意的从集合中取出n个元素,则这n个元素所形成的可能子集有那些?
解法
假设有5个元素的集点,取出3个元素的可能子集如下:
{1 2 3}、{1 2 4 }、{1 2 5}、{1 3 4}、{1 3 5}、{1 4 5}、{2 3 4}、{2 3 5}、{2 4 5}、
{3 4 5}这些子集已经使用字典顺序排列,如此才可以观察出一些规则: 如果最右一个元素小于m,则如同码表一样的不断加1
如果右边一位已...
c++简单实现二叉树、AVL、最大最小堆、霍夫曼、集合(问题:malloc,typedef,指针)(代码只是大概思路不一定能运行)前言typedef的使用stack的使用队列的使用malloc/new 的使用方法与区别c++ NULL/nullptr 的区别二叉树二叉树遍历二叉树遍历 先序遍历 先访问根结点 先序遍历左子树 先序遍历其右子树 根左右二叉树遍历 中序遍历 中序遍历左子树 访问根结点 中序遍历其右子树 左根右二叉树遍历 后序遍历 后序遍历左子树 后序遍历其...
本文会持续更新, 我希望通过这篇文章把我看到过的优秀开源项目记录下来, 有时间仔细阅读.
cockroachdb 前googler开发的开源的spanner数据库: https://github.com/cockroachdb/cockroach
log4cplus 轻量级c++日志库: https://github.com/log4cplus/log4cplus
sofa-pbrpc 基于protobuf的rpc库, 我负责的项目: https://github.com/BaiduPS/sofa-pbrpc
google leveldb 经典: https://github.com/google/leveldb
微软的rDSN, 目标和我...