- 浏览: 584074 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (365)
- Tomcat调优 (2)
- Apache Http (20)
- Webserver安装 (5)
- Linux安装 (28)
- Linux常用命令 (17)
- C语言及网络编程 (10)
- 文件系统 (0)
- Lucene (12)
- Hadoop (9)
- FastDFS (8)
- 报表 (0)
- 性能测试 (1)
- JAVA (18)
- CSharp (3)
- C++ (38)
- BI (0)
- 数据挖掘 (0)
- 数据采集 (0)
- 网址收集整理 (3)
- Resin (0)
- JBoss (0)
- nginx (0)
- 数据结构 (1)
- 随记 (5)
- Katta (1)
- Shell (6)
- webservice (0)
- JBPM (2)
- JQuery (6)
- Flex (41)
- SSH (0)
- javascript (7)
- php (13)
- 数据库 (6)
- 搜索引擎排序 (2)
- LVS (3)
- solr (2)
- windows (1)
- mysql (3)
- 营销软件 (1)
- tfs (1)
- memcache (5)
- 分布式搜索 (3)
- 关注的博客 (1)
- Android (2)
- clucene (11)
- 综合 (1)
- c c++ 多线程 (6)
- Linux (1)
- 注册码 (1)
- 文件类型转换 (3)
- Linux 与 asp.net (2)
- perl (5)
- coreseek (1)
- 阅读器 (2)
- SEO (1)
- 励志 (1)
- 在线性能测试工具 (1)
- yii (7)
- 服务器监控 (1)
- 广告 (1)
- 代理服务 (5)
- zookeeper (8)
- 广告联盟 (0)
- 常用软件下载 (1)
- 架设自已的站点心得 (0)
最新评论
-
terry07:
java 7 用这个就可以了 Desktop desktop ...
关于java Runtime.getRunTime.exec(String command)的使用 -
HSINKING:
怎么设置打开的dos 窗口是指定的路径下
关于java调用bat文件,不打开窗口 -
liubang201010:
hyperic hq更多参考资料,请访问:http://www ...
hyperic-hq -
^=^:
STDIN_FILENO是unistd.h中定义的一个numb ...
深入理解dup和dup2的用法 -
antor:
留个记号,学习了
[转]用java流方式判断文件类型
标准C++中string类及STL容器类简介
一.标准C++库字符串类std::string的用法
参考:http://www.stlchina.org/twiki/bin/view.pl/Main/WebHome
一.标准C++库字符串类std::string的用法
#include<string> std::string s1; std::string s3(s2); std::string s2("this is a string"); begin 得到指向字符串开头的Iterator end 得到指向字符串结尾的Iterator rbegin 得到指向反向字符串开头的Iterator rend 得到指向反向字符串结尾的Iterator size 得到字符串的大小 length() 和size函数功能相同 max_size 字符串可能的最大大小 capacity 在不重新分配内存的情况下,字符串可能的大小 empty 判断是否为空 operator[] 取第几个元素,相当于数组 c_str 取得C风格的const char* 字符串 data 取得字符串内容地址 operator= 赋值操作符 reserve 预留空间 swap 交换函数 insert 插入字符 append 追加字符 push_back 追加字符 erase 删除字符串 clear 清空字符容器中所有内容 resize 重新分配空间 assign 和赋值操作符一样 replace 替代 copy 字符串到空间 find 查找,返回基于0的索引号 rfind 反向查找 find_first_of 查找包含子串中的任何字符,返回第一个位置 find_first_not_of 查找不包含子串中的任何字符,返回第一个位置 find_last_of 查找包含子串中的任何字符,返回最后一个位置 find_last_not_of 查找不包含子串中的任何字符,返回最后一个位置 substr(n1,len) 得到字符串从n1开始的长度为len的子串 比较字符串(支持所有的关系运算符) compare 比较字符串 operator+ 字符串链接 operator+= += 操作符 operator== 判断是否相等 operator!= 判断是否不等于 operator< 判断是否小于 operator>> 从输入流中读入字符串 operator<< 字符串写入输出流 getline 从输入流中读入一行二.向量类模板std::vector成员函数: #include<vector> std::vector<type> name; std::vector<type> name(size); std::vector<type> name(size,value); std::vector<type> name(myvector); std::vector<type> name(first,last); assign(first,last) 用迭代器first,last所指定的元素取代向量元素 assign(num,val) 用val的num份副本取代向量元素 at(n) 等价于[]运算符,返回向量中位置n的元素 front() 返回向量中第一个元素的引用 back() 返回向量中最后一个元素的引用 begin() 返回向量中第一个元素的迭代器 end() 返回向量中最后一个元素的迭代器 max_size() 返回向量的最大容量(向量所能容纳的最多元素个数) capacity() 返回向量当前所能容纳的最多元素个数 clear() 删除向量中所有元素 empty() 如果向量为空,返回真 erase(start,end) 删除迭代器start end所指定范围内的元素 erase(i) 删除迭代器i所指向的元素 insert(i,x) 把x插入到迭代器i所指定的位置 insert(i,n,x) 把x的n份副本插入到迭代器i所指定的位置 insert(i,start,end) 把迭代器start和end所指定的范围内的值插入到迭代器i所指定的位置 push_back(x) 把x插入到向量的尾部 pop_back() 删除向量中最后一个元素 rbegin() 返回一个反向迭代器,该迭代器指向的元素越过了向量中的最后一个元素 rend() 返回一个反向迭代器,该迭代器指向向量中第一个元素 reverse() 反转元素顺序 resize(n,x) 把向量的大小改为n,新元素的初值赋为x size() 返回向量的大小 swap(vectorref) 交换2个向量的内容 三.双端队列类模板std::deque成员函数: #include<deque> std::deque<type> name; std::deque<type> name(size); std::deque<type> name(size,value); std::deque<type> name(mydeque); std::deque<type> name(first,last); 其成员函数大部分和std::vector相同 PS: push_front(x)把x放到双向队列的头部 pop_front() 把双向队列的第一个元素删除 四.链表类模板std::list成员函数: #include<list> std::list<type> name; std::list<type> name(size); std::list<type> name(size,value); std::list<type> name(mylist); std::list<type> name(first,last); 其成员函数大部分和std::vector相同 PS: push_front(x)把x放到链表头部 pop_front() 把链表第一个元素删除 merge(listref) 把listref所引用的链表中的所有元素插入到链表中 remove(val) 从链表中删除所有值为val的元素 remove_if(pred) 删除链表中谓词pred为真的元素 (谓词即为元素存储和检索的描述,如std::less<>,std::greater<>那么就按降序/升序排列,你也可以定义自己的谓词) sort() 根据默认的谓词对链表排序 sort(pred) 根据给定的谓词对链表排序 unique() 删除所有重复的元素,使链表中没有重复元素 unique(pred) 根据谓词pred删除所有重复的元素,使链表中没有重复元素 注意:vector和deque支持随机访问,而list不支持随机访问,因此不支持[]访问! 五.容器适配器堆栈类std::stack成员函数: #include<stack> stack实现先进后出的操作 std::stack<type,container> name; type为堆栈操作的数据类型 container为实现堆栈所用的容器类型,可以为std::vector,std::deque,std::list 例如 std::stack<int,std::list<int>> IntStack; 管理成员函数只有:empty(),size(),top(),push(),pop() 六.容器适配器队列类std::queue成员函数: #include<queue> queue实现先进先出的操作 std::queue<type,container> name; type为队列操作的数据类型 container为实现队列所用的容器类型,可以为std::vector,std::deque,std::list 管理成员函数只有:empty(),size(),front(),back(),push(),pop() 七.关联式容器: 集合类std::set, 多重集合类std::multiset, 映射类std::map, 多重映射类std::multimap, 位集合std::bitset 八.通用算法(对以上STL均适用) #include<algorithm> 1.非修正序列算法: 2.修正序列算法: 3.排序算法: 4.数值算法: 九.迭代器(类似指针的功能,对容器的内容进行访问) #include<iterator> 例如: std::vector<int> IntVector; std::vector<int>::iterator first=IntVector.begin(); //begin()得到指向vector开头的Iterator,*first得到开头一个元素的值 std::vector<int>::iterator last=IntVector.end(); //end()得到指向vector结尾的Iterator,*last得到最后一个元素的值
参考:http://www.stlchina.org/twiki/bin/view.pl/Main/WebHome
发表评论
-
[转载]strftime() 函数_时间格式
2011-01-12 11:21 1191[转载]strftime() 函数 (2007-12-06 1 ... -
fork函数
2011-01-11 13:23 916引用 在linux中,只有一 ... -
如何调试守护进程
2011-01-11 13:05 3213如何调试守护进程 我写 ... -
UNIX管道编程——使用pipe函数,dup函数,dup2函数
2011-01-11 10:02 51772009-12-29 11:46管道在unix ... -
c中的管道及复制描述符
2011-01-10 17:22 12381、 #include <stdio.h& ... -
如何在运行时确定对象类型(RTTI)
2011-01-10 11:45 943引用作者:NorthTibet RTTI 是“R ... -
string, char*, int类型转换 , c++强制转化
2011-01-10 10:04 16504一、 以下是常用的几种类型互相之间的转换 string 转 ... -
linux信号机制之sigaction结构体浅析
2011-01-10 00:27 1405linux 2009-02-20 16:47:00 阅读460 ... -
Linux下的管道编程技术-dup函数和dup2函数
2011-01-09 23:45 1150from [url]http://www.xxlinux.co ... -
Linux下使用C/C++访问数据库
2011-01-07 16:19 1342Linux下使用C/C++访问数据库——MySQL篇 ... -
多核分布式队列的实现:“偷”与“自私”的运用
2011-01-06 11:38 1062原创作品,允许转载, ... -
Boost和STL学习资料大全
2011-01-06 09:38 2638from http://blog.csdn.net/k2eat ... -
linux平台上编译安装boost库
2011-01-06 09:33 6739from http://dev.firnow.com/co ... -
C++多线程入门
2010-12-30 09:52 1249第1节 背景 为了更好 ... -
c++中__declspec用法总结
2010-12-29 17:47 1787c++中__declspec用法总结C++ ... -
__cplusplus的用处
2010-12-29 14:07 1063作者: Aprilgogo 发表日期: 2007-03-1 ... -
#ifdef __cplusplus深度剖析
2010-12-29 14:06 826时常在cpp的代码之中看 ... -
C和C++之间库的互相调用
2010-12-29 13:44 1056C和C++之间库的互相调用 昨晚有个朋友问我关于在C中调用C ... -
c, c++ 库调用相关知识
2010-12-29 13:41 13801。 重载是如何实现的 ... -
放在函数后面的const是什么意思?
2010-12-17 16:13 1458经常看到这样的定义: void f() const ...
相关推荐
在C++标准模板库(STL)中,`std::string`类是一个极其重要的容器,它专门用于存储、操作和管理字符串数据。标题中的“string类的构造方法”揭示了我们要探讨的核心内容——如何初始化和创建`std::string`对象。`std...
STL,全称为Standard Template Library,是C++标准库的核心部分,它提供了一组高效、通用的容器、迭代器、算法和函数对象。在【STL源代码】中,我们可以深入学习并理解这些组件的实现细节,从而提高编程技能和效率。...
第四章主要讲解的是C++标准库中的STL(Standard Template Library)中的string类。STL是C++中一套强大的工具,包含容器、迭代器、算法和函数对象等,极大地提高了编程效率。string类是用于处理字符串的基本数据结构...
STL容器是C++标准模板库(Standard Template Library)中的一部分,提供了一系列的容器类来存储和管理数据。STL容器可以分为两大类:序列式容器和关联式容器。 序列式容器的特点是强调值的排序,每个元素均有固定的...
在这个"第二版"的教程中,我们将深入探讨STL中的string类,这是一个专为处理文本字符串而设计的容器。我们将讨论如何使用string类提供的各种字符串处理函数,并通过`StringProcess.cpp`、`trim() 调试.cpp`和`...
特别是 C++ 的 string 类,它提供了许多实用的函数和操作符,极大地方便了字符串的处理。 1. String 的存储功能 C++ 的 string 类可以存储字符串,并提供了许多函数来操作字符串,如 substr()、find()、getline() ...
在标准C++中,`StringList`的概念是对VCL(Visual Component Library)中的`TStringList`类的一个模仿。VCL是Delphi编程环境中的一部分,它提供了一个方便的数据结构来存储和操作字符串列表。在C++中,我们通常会...
作为STL容器,`std::string`支持迭代器,可以配合标准算法进行操作。例如,你可以使用`begin()`和`end()`获取迭代器,然后通过`std::for_each()`遍历字符串。另外,`std::string`也支持容器的大小调整操作,如`...
STL(Standard Template Library,标准模板库)是C++编程语言中的一个重要组成部分,它提供了高效且灵活的数据结构和算法。在STL中,容器是一类能够存储数据的对象,包括vector、string、deque、queue、list、set、...
例如,你可以使用模板定义一个函数,该函数接受一个STL容器并对其进行操作,如计算所有元素的和: ```cpp template int sum(const Container& c) { int result = 0; for (const auto& element : c) { result +=...
STL容器是存储和管理对象的模板类。例如,`std::vector`是一个动态数组,`std::list`是一个双向链表,`std::set`是一个自平衡的二叉查找树。每个容器都有其特定的性能特性和用途,开发者可以根据实际需求选择合适的...
6. **迭代器(Iterator)**:为了支持STL容器的接口,自定义`string`类可能需要提供迭代器,允许用户通过迭代访问字符串中的每个字符。 7. **异常安全(Exception Safety)**:在执行可能导致异常的操作时,如动态...
本文将详细探讨智能指针、STL容器以及`string`类在C++20中的应用和源码注解。 首先,让我们来看智能指针。智能指针是C++中用于管理动态内存的对象,它们自动处理对象的生命周期,避免了内存泄漏的问题。在C++20中,...
C++标准库STL(Standard Template Library)是C++编程中的一个重要组成部分,它提供了一系列高效且灵活的模板类和函数,极大地增强了C++的抽象能力和泛型编程能力。STL的核心概念包括容器、迭代器、算法和适配器,...
在标准模板库(STL)中,`string`是处理文本数据的一个强大工具。它实质上是对C风格字符串的一种封装,提供了更安全、更方便的字符串操作方式。`string`类定义在`<string>`头文件中,它是`std::basic_string`模板类...
在C++编程中,STL(Standard Template Library,标准模板库)是一组高效、泛型的C++模板类和函数,提供了数据结构和算法的实现。STL的主要组成部分包括容器、迭代器、算法和函数对象。在这个“C++机房预约系统”中,...
C++中的STL(Standard Template Library,标准模板库)是C++编程中极其重要的组成部分,它提供了一系列高效、灵活的容器、算法和迭代器。在STL中,`string`类是一个非常常用的容器,用于存储和操作字符串。下面将...
C++中的STL(Standard Template Library,标准模板库)是一个强大的工具集,它包含了许多用于高效编程的数据结构和算法。其中,STL string是处理文本数据的重要组件,它提供了丰富的功能来操作和管理字符串。在C++中...
《C++标准库STLstring类详解》 在C++编程语言中,标准模板库(Standard Template Library,简称STL)是不可或缺的一部分,它提供了一系列高效且通用的容器、算法和迭代器。其中,string类作为STL的一个重要组件,是...
C++模板和容器是C++标准库中的两个重要组成部分,它们极大地增强了代码的复用性和效率。本文将深入探讨这两个概念,以及它们在实际编程中的应用。 ### 1. C++模板 C++模板是一种泛型编程技术,允许开发者创建可以...