双向循环链表list
list是双向循环链表,每一个元素都知道前面一个元素和后面一个元素。
list和vector的区别:
在list中,由于其内存分配是非连续的,因此不能像vector那样用[]操作符取值,而只能用迭代器来访问list中的元素。list中提供的成员函数与vector类似,不过list提供对表首元素的操作push_front、pop_front,这是vec...
分类:
其他好文 时间:
2014-06-22 21:33:58
阅读次数:
215
??
所谓临时对象就是一种无名对象。它的出现如果不在程序员的预期之下(例如任何pass by value操作都会引发copy操作,于是形成一个临时对象),往往照成效率上的负担。但有时候可以制造一些临时对象,却又使程序干净清爽的技巧。刻意制造临时对象的方法是,在型别名称之后直接加一对小括号,并可指定初值,例如int(8),其意义相当于调用相应的constructor,且不指定对象名称。STL最...
分类:
编程语言 时间:
2014-06-22 21:01:55
阅读次数:
209
实现vector容器的思路等同于实现一个动态数组,下面我们参照源码的相关资料,给出一个vector容器的大致框架,只有声明,没给出具体的实现。...
分类:
其他好文 时间:
2014-06-22 19:46:40
阅读次数:
128
list的底层采用数据结构是环形的双向链表, 相对于vector容器,list容器插入和删除操作付出的代价要比vector容器小得多,但是list带有链表的天生弱点,就是不支持随机访问。从内置的迭代器角度分析,vector容器对应的迭代器为随机访问迭代器,而list容器内置的迭代器则为双向迭代器。...
分类:
其他好文 时间:
2014-06-22 19:19:11
阅读次数:
163
vector strsplit(const string& str)
{
vector vec;
string sstr1=str, sstr2="";
size_t np=0;
while (sstr1!="")
{
size_t dt = sstr1.find(',');
if (dt != string::npos)
{
sstr1 = str.substr(np...
分类:
其他好文 时间:
2014-06-22 18:06:11
阅读次数:
205
11488 - Hyper Prefix Sets
Time limit: 2.000 seconds
#include
#include
#include
#include
#include
#include
#include
using namespace std;
const int maxn = 5000000;
vector vs;
int cnt,ans...
分类:
其他好文 时间:
2014-06-22 16:38:22
阅读次数:
199
转发:大海巨浪Java库本身就有多种线程安全的容器和同步工具,其中同步容器包括两部分:一个是Vector和Hashtable。另外还有JDK1.2中加入的同步包装类,这些类都是由Collections.synchronizedXXX工厂方法。同步容器都是线程安全的,但是对于复合操作,缺有些缺点:① ...
分类:
编程语言 时间:
2014-06-22 12:54:50
阅读次数:
319
public member function
std::vector::vector
C++98
C++11
default (1)
explicit vector (const allocator_type& alloc = allocator_type());
fill (2)
explicit vec...
分类:
其他好文 时间:
2014-06-22 07:02:06
阅读次数:
386
尝试下翻译STL里面的一些容易和算法。
原来均来自:...
分类:
其他好文 时间:
2014-06-21 20:24:57
阅读次数:
219