STL之string插入

  1 #include <iostream>
  2 #include <string>
  3
  4 using namespace std;
  5 int main()
  6 {
  7     string s("hello");
  8     string s2("abcdef");
  9
 10     string::iterator p = s.begin();
 11     cout << *p << endl;
 12     s.insert(p, ‘A‘);   //插入之后,p指向新插入的数据
 13     cout << *p << endl;
 14     cout << s << endl;
 15
 16     //每执行插入操作一次,gcc下必须重新给迭代器赋值
 17     //否则内存泄漏
 18     // 为什么呢?不明白
 19     p = s.begin();
 20     s.insert(p,‘B‘);
 21     cout << *p << endl;
 22     cout << s << endl;
 23
 24     string::iterator b = s2.begin();
 25     string::iterator e = s2.end();
 26
 27     p = s.begin();
 28     s.insert(p, b, e);
 29     cout << s << endl;
 30
 31     s = "hello";
 32     cout << s <<endl;
 33     s.assign(b, e);
 34     cout << s <<endl;
 35
 36     s.assign(8, ‘k‘);
 37     cout << s <<endl;
 38
 39     s = "abcdef";
 40     p = s.begin();
 41     s.erase(p);     //删除
 42     cout << s <<endl;
 43
 44     p = s.begin();
 45     p++;
 46     p++;
 47     string::iterator p2 = s.end();
 48     p2--;
 49     s.erase(p, p2);
 50     cout << s <<endl;
 51
 52     s = "hello";
 53     s2 = "abc";
 54     s.insert(0, 3, ‘A‘);
 55     cout << s <<endl;
 56
 57     s.insert(5, s2);    //位置从0开始,第6个元素之前
 58     cout << s <<endl;
 59
 60     s2 = "12345";
 61     s.insert(0, s2, 2, 3);
 62     cout << s <<endl;
 63
 64     char *cp = "Stately plump Buck";
 65     s.assign(cp, 7);
 66     cout << s <<endl;
 67     s.assign(cp);
 68     cout << s <<endl;
 69
 70     s = "hello";
 71     s.insert(0, cp, 7);
 72     cout << s <<endl;
 73     s = "hello";
 74     s.insert(0, cp);
 75     cout << s <<endl;
 76
 77     s = "hello";
 78     s2 = "abcdef";
 79     s.assign(s2, 2, 3);
 80     cout << s << endl;
 81
 82     s.erase(2, 3);
 83     cout << s <<endl;
 84
 85     s = "123456789";
 86     s.erase(s.size()-5, 1); //删除字符串的倒数第5个;
 87     cout << s <<endl;
 88
 89     s.insert(s.size(), 5, ‘!‘); //size()最后一个的后一个,insert在size()之前插入;
 90     cout << s <<endl;
 91
 92     s = "abc";
 93     s.erase(0, 1).insert(0, "A");
 94     cout << s <<endl;
 95
 96     s = "abc";
 97     s[0] = ‘A‘;
 98     cout << s <<endl;
 99     return 0;
100 }
101        
时间: 2024-12-28 01:00:28

STL之string插入的相关文章

浅析常用STL中容器插入数据失败

昨天在上班的时候,碰到一个问题,关于 STL常用容器插入数据失败. 问题详细:在一个类构造函数填零后,那么map list 插入数据失败了,但是vector不会.测试代码如下: class Test { public: Test(){memset(this,0,sizeof(*this));} void InsertElement(){m_map.insert(std::make_pair(1,1)); } void InsetElement_vector(){ m_vector.push_ba

STL之string

一,字符串的概念 1.字符串与字符指针的比较 string是STL封装的一个类,char *是一个指向字符的指针,string是对char *的封装,是一个char *的容器. string不需要考虑内存的释放和越界,string会管理char *的内存,在构建,赋值,销毁等操作都是由string自己完成的. string提供了一些列的成员函数,简化了我们对字符串的操作. 二,字符的构造函数 1.默认无参构造函数 string str; // 构造一个空字符串 2.有参构造函数 //1. 用字面

C++STL之String

本文直接转载,非原创!仅记录供自己学习之用. 出处:http://blog.csdn.net/y990041769/article/details/8763366 在学习c++STL中的string,在这里做个笔记,以供自己以后翻阅和初学者参考. 1:string对象的定义和初始化以及读写 string s1;      默认构造函数,s1为空串 string s2(s1);   将s2初始化为s1的一个副本 string s3("valuee");   将s3初始化一个字符串面值副本

STL之string使用详解

声明一个C++字符串 string类的构造函数和析构函数如下: string s; //生成一个空字符串s string s(str) //拷贝构造函数 生成str的复制品 string s(str,ss) //将字符串str内以ss开始的部分当作字符串的初值 string s(str,ss,length) //将字符串str内ss开始长度为length的部分作为字符串的初值 string s(cstr) //将C字符串作为s的初值 string s(chars,chars_len) //将C字

C++STL之string (转)

在学习c++STL中的string,在这里做个笔记,以供自己以后翻阅和初学者参考. 1:string对象的定义和初始化以及读写 string s1;      默认构造函数,s1为空串 string s2(s1);   将s2初始化为s1的一个副本 string s3("valuee");   将s3初始化一个字符串面值副本 string s4(n,'c');   将s4 初始化为字符'c'的n个副本 cin>>s5;  读取有效字符到遇到空格 getline(cin,s6

解读STL的string类中各方法的使用场景

所在头文件:<string> 实现:typedf basic_string<char> string 所在命名空间:std 功能:标准string提供字节标准容器的接口,同事增加对字符串中单独的字符的操作.由于标准string是basic_string<char>的一种特化,只能针对char型,如果字符编码方式是多字节或者可变字符序列(eg:UTF-8)那么它仍然按字节去解读,而不是按照传入内容的编码方式. (1)成员函数number functions constru

C++【String类】String插入单个字符,插入字符串的函数实现

#include<iostream> #include<stdlib.h> #include<assert.h> using namespace std; class String { public:     String(const char* str)         :_str(new char[strlen(str) + 1])     {         _size = strlen(str);         _capacity = _size + 1;  

C++之STL之string

/*C 语言中字符数组一般会采用char str[]来存放,但是显得会比较麻烦,C++在stl中加入了string类型,对字符串常用的功能进行了封装,操作起来比较方便*/#include<cstdio>#include<string>using namespace std;int main(){ string str = "hello world"; for (int i = 0; i< str.length(); i++){ printf("%

STL的string如何使用UNICODE?

#include "stdafx.h" #include "TestCmd.h" #ifdef _DEBUG #define new DEBUG_NEW #endif CWinApp theApp; using namespace std; #ifdef _UNICODE #define tstring wstring #else #define tstring string #endif // 唯一的应用程序对象 static void WriteString(H