复习C++(1)

 

 Vector

字符串

String类


 Vector

#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
    vector< vector<int> > arry; //写成arry(5) 可理解为设定大小5行
    vector<int> d;        //定义一个一维的数组;
    int i, j, k, n;
    int number;

    scanf("%d", &n );
    /*可以这样实现对vector二维的初始化,得到的是n行n列的矩阵*/
    for( i=0; i<n; i++ )
    {
        for( j=0; j<n; j++ )
        {
            scanf("%d", &number );
            d.push_back( number );
        }
        sort( d.begin(), d.end() ); //排序需要头文件algorithm
        arry.push_back( d );
        //d.clear();        //清空一维的数组
        d.resize(0);
    }
    /*遍历输出*/
    if( arry.empty() )
        printf("0\n");
    else
    {
        for( i=0; i<arry.size(); i++ )
        {
            for( j=0; j<arry[0].size(); j++ )
            {
                printf("%d ", arry[i][j] );
            }
            printf("\n");
        }
    }

    return 0;
}

vector的clear操作可以将vector的数据清空,但是vector的容量不会变化,即分配给vector的内存不会收回。

vector<int> num={1,2,3,4,5};

num.clear();

resize()的作用是改变vector中元素的数目。

vector<int> num={1,2,3,4,5};

num.resize(0);

如果n比当前的vector元素数目要小,vector的容量要缩减到resize的第一个参数大小,即n。

并移除那些超出n的元素同时销毁他们。

如果n比当前vector元素数目要大,在vector的末尾扩展需要的元素数目,如果第二个参数val指定了,扩展的新元素初始化为val的副本,否则按类型默认初始化。

注意:如果n大于当前的vector的容量(是容量,并非vector的size),将会引起自动内存分配。现有的指针、迭代器等将会失效。

resize(0)即可将vector中的元素清空,同时容量也清空。

字符串

strcpy(s1, s2);
复制字符串 s2 到字符串 s1。

strcat(s1, s2);
连接字符串 s2 到字符串 s1 的末尾。

strlen(s1);
返回字符串 s1 的长度。

strcmp(s1, s2);
如果 s1 和 s2 是相同的,则返回 0;如果 s1<s2 则返回值小于 0;如果 s1>s2 则返回值大于 0。

strchr(s1, ch);
返回一个指针,指向字符串 s1 中字符 ch 的第一次出现的位置。

strstr(s1, s2);
返回一个指针,指向字符串 s1 中字符串 s2 的第一次出现的位置。

String类

#include <string>

   // 复制 str1 到 str3
   str3 = str1;
   cout << "str3 : " << str3 << endl;
 
   // 连接 str1 和 str2
   str3 = str1 + str2;
   cout << "str1 + str2 : " << str3 << endl;
 
   // 连接后,str3 的总长度
   len = str3.size();
   cout << "str3.size() :  " << len << endl;

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值