STL—vector、string

简介: STL—vector、string

vector 向量容器

C++代码功能实现

#include<vector>
#include<stdlib.h>
#include<iostream>
#include<algorithm>
using namespace std;
bool  Comp(const int &a,const int &b)
{
  if(a!=b)  return a>b;
  else  return a>b;
}
int main()
{
  vector<int> v(10);
  for(int i=0;i<10;i++)
    v[i]=i;
  v.erase(v.begin()+2);//删除 
  vector<int>::iterator t;
  for(t=v.begin();t!=v.end();t++)
    cout<<*t<<" "; 
  cout<<endl;
  v.erase(v.begin()+4);
  for(t=v.begin();t!=v.end();t++)
    cout<<*t<<" "; 
  cout<<endl;
  v.erase(v.begin()+1,v.begin()+5);
  for(t=v.begin();t!=v.end();t++)
    cout<<*t<<" ";
  cout<<endl<<v.size()<<endl;
//  v.clear();
  cout<<v.size()<<endl<<v[0]<<" "<<v[1]<<" "<<v[2]<<" "<<v[3]<<endl;
  reverse(v.begin(),v.end());
  for(t=v.begin();t!=v.end();t++)
    cout<<*t<<" ";
  cout<<endl;
  vector<int> a;
  for(int i=0;i<10;i++)
    a.push_back(9-i);
  for(int i=0;i<10;i++)
    cout<<a[i]<<" ";
  cout<<endl;
  sort(a.begin(),a.end());//按升序排序 
  for(int i=0;i<10;i++)
    cout<<a[i]<<" ";
  vector<int> b;
  for(int i=0;i<10;i++)
    b.push_back(i);
  cout<<endl;
  sort(b.begin() ,b.end(),Comp);//按Comp规则排序 
  for(int i=0;i<10;i++)
    cout<<b[i]<<" ";
  cout<<endl;
  cout<<b.size()<<endl;//包含多少个元素 
  cout<<b.empty()<<endl;//如果为0则为真,为1则为假; 
  b.clear();//清空 
  cout<<b.empty()<<endl;
  cout<<endl; 
  return 0;
}

string 容器

C++代码实现

#include<string.h>
#include<iostream>//向量需要
#include<algorithm>//使用反向排序reverse()函数 
#include<vector>
using namespace std;
int main()
{
  string s;//创建字符串对象
  s="zhang wei play C++.";//对象赋值 
  cout<<s.length()<<endl;
  cout<<s<<endl; //下标从零开始计数 
  char ss[1000];
  scanf("%s",ss);
  s=ss;//把字符数组赋值给string对象 
  cout<<s<<endl;
  s=s+'z';//string对象尾部加字符 
  s=s+'w';
  cout<<s<<endl;
  s=s+"zhangwei";//尾部加字符串
  cout<<s<<endl;
  s.append("iewgnahz");//与尾部加字符串一样 
  cout<<s<<endl; 
  string::iterator t;//定义迭代器
  t=s.begin();
  s.insert(t+5,'&');//插入第5个字符前 
  s.insert(t+14,'&');//插入第14个字符前 
  cout<<s<<endl;
  cout<<s[0]<<endl;
  cout<<s[0]-'1'<<endl;//两个相同的字符相减为零
  t=s.begin();
  s.erase(t+1);//删除1位置字符 
  cout<<s<<endl;
  s.erase(t+1);
  cout<<s<<endl;
  s.erase(t+1,t+13);        //删除1~13区间元素 
  cout<<s<<endl;
  string s1;
  s1=s;
  cout<<s.length()<<endl;
  s1="";      //清空字符串 
  cout<<s1.empty()<<endl;
  s=s+"abcd";
  s.replace(2,3,"555");//从第2个开始将连续的三个字符替换555 
  cout<<s<<endl; 
  cout<<s.find("555")<<endl;
  cout<<s.find('a')<<endl;
  cout<<s.find("good")<<endl;
  cout<<s.find('o')<<endl;
  cout<<s.compare("1234")<<endl;//比较,s大返回1;小返回-1;相同返回0;
  reverse(s.begin(),s.end());//反向排序 
  cout<<s<<endl; 
  vector<string> v;//类似于字符串数组 
  v.push_back("jack");
  v.push_back("Tom");
  cout<<v[0]<<endl;
  cout<<v[1]<<endl;
  cout<<v[0][3]<<endl;
  cout<<v[1][2]<<endl;
  s="12345";
  cout<<s<<endl;
  int sum=0;
  for(int i=0;i<s.length();i++)
  {
    sum+=s[i]-'0';
  }
  cout<<sum<<endl;
  cin>>s;
  reverse(s.begin(),s.end());
  cout<<s<<endl;
  printf(s.c_str());
  cout<<endl;
  return 0;
} 


相关文章
|
4月前
|
存储 编译器 C语言
关于string的‘\0‘与string,vector构造特点,反迭代器与迭代器类等的讨论
你真的了解string的'\0'么?你知道创建一个string a("abcddddddddddddddddddddddddd", 16);这样的string对象要创建多少个对象么?你知道string与vector进行扩容时进行了怎么的操作么?你知道怎么求Vector 最大 最小值 索引 位置么?
90 0
|
11月前
|
C语言 C++ 容器
【c++丨STL】string模拟实现(附源码)
本文详细介绍了如何模拟实现C++ STL中的`string`类,包括其构造函数、拷贝构造、赋值重载、析构函数等基本功能,以及字符串的插入、删除、查找、比较等操作。文章还展示了如何实现输入输出流操作符,使自定义的`string`类能够方便地与`cin`和`cout`配合使用。通过这些实现,读者不仅能加深对`string`类的理解,还能提升对C++编程技巧的掌握。
451 5
|
11月前
|
存储 编译器 C语言
【c++丨STL】string类的使用
本文介绍了C++中`string`类的基本概念及其主要接口。`string`类在C++标准库中扮演着重要角色,它提供了比C语言中字符串处理函数更丰富、安全和便捷的功能。文章详细讲解了`string`类的构造函数、赋值运算符、容量管理接口、元素访问及遍历方法、字符串修改操作、字符串运算接口、常量成员和非成员函数等内容。通过实例演示了如何使用这些接口进行字符串的创建、修改、查找和比较等操作,帮助读者更好地理解和掌握`string`类的应用。
337 2
|
安全 C语言 C++
【C++篇】探寻C++ STL之美:从string类的基础到高级操作的全面解析
【C++篇】探寻C++ STL之美:从string类的基础到高级操作的全面解析
145 4
|
编译器 C语言 C++
【C++】C++ STL 探索:String的使用与理解(三)
【C++】C++ STL 探索:String的使用与理解
147 2
|
存储 编译器 C++
【C++】C++ STL 探索:String的使用与理解(二)
【C++】C++ STL 探索:String的使用与理解
105 1
|
编译器 C语言 C++
【C++】C++ STL 探索:String的使用与理解(一)
【C++】C++ STL 探索:String的使用与理解
340 1
|
存储 算法 程序员
【STL】string
【STL】string
|
编译器 C++
【C++进阶】深入STL之string:模拟实现走进C++字符串的世界
【C++进阶】深入STL之string:模拟实现走进C++字符串的世界
104 1
|
编译器 C语言 C++
【C++/STL】:string类底层的模拟实现
【C++/STL】:string类底层的模拟实现
89 0