zoukankan      html  css  js  c++  java
  • c++ 学习笔记01

      我一直认为我的意志力和执行了还算可以滴,但是对于写工作日记这件事我一直都是拖起,没有一点点积极性。以前很多学习的新知识当时是明白了可是却没有做笔记,以后想复习复习都不知道从何做起。所以现在要强迫自己明天把学到的知识做一个总结,刚好这段时间学习c++,就把学习的一点点经验保留下来。

      c++对我来说有点陌生,只是在大二的时候学过一个学期,也不是学的很好,后来就开始着手学习c#,当时感觉c#比c++方便多了,这才是代表先进的生产了。在读研期间参与过用C#开发的一些商业项目,还是学到不少东西。再后来开始接触移动互联网开发,又要学习Java,虽然没有学习过Java,但是C#和Java很像的,上手也是很快。上个学期找工作却应聘到一个C++开发的岗位,唉,只好又要开始学习C++,现在看C++是各种不适应啊,没有办法,为了工作,就要坚持下去。

      闲话少说,言归正传。公司给了我们一个帐号和密码,让我们做一些编程题来训练。有一部分是让输入几行数据,然后在分别处理这些数据。刚开始用了一个很笨的方法来保存没一行数据,方法如下:

      
     1  char strInput[MAX_SIZE][MAX_SIZE];
     2     int i=0;
     3     while(cin.getline(strInput[i],Max_LENTH))
     4     {
     5         if (strlen(strInput[i])>100)
     6         {
     7             exit(0);
     8         }
     9         else
    10         {
    11             if(strcmp(strInput[i],"0")!=0)
    12             {
    13                 i++;
    14             }
    15             else
    16                 break;
    17             }
    18     }
    这种方法也能实现题目的要求,使用一个二维数组来保存每一行字符串。后来我在想能不能用一个一维字符串数组来保存数据,就在网上查找一下相关信息,有的网友建议用vector来处理字符串,方法如下:
    1   string strTemp;
    2  
    3     vector<string> vecInput;
    4     for(int i=0;i<3;i++)
    5     {
    6         cin>>strTemp;
    7         vecInput.push_back(strTemp);
    8     }

      对于vector不是很熟悉,就上网查了相关使用教程,详细使用参考 http://blog.csdn.net/pandy1110/article/details/5963908

      另外还有一道题是关于删除嵌套注释,当时看到题目有点不知道如何下手,我就整理了一下思路:

      1.判断是否有注释

      2.找到注释的起始位置,我是用字符串查找函数来实现的,要用的find()和rfind()函数。

    1 string::size_type low=str.find("/*"); //从左向右查找第一个出现“/×”的位置
    2 string::size_type high=str.rfind("*/");//从右向左查找第一出线“×/”的位置

      3.删除low 和high之间出现的“/×”和“×/”,这就又要用的字符串删除函数erase(),使用方法

      语法: iterator erase( iterator pos );

      iterator erase( iterator start, iterator end );

      basic_string &erase( size_type index = 0, size_type num = npos );

      erase()函数可以:

      删除pos指向的字符, 返回指向下一个字符的迭代器,

      删除从start到end的所有字符, 返回一个迭代器,指向被删除的最后一个字符的下一个位置

      删除从index索引开始的num个字符, 返回*this.

      对于string,两个参数是:index从字符串第index位置开始删除,num是要删除字符个数。


     
  • 相关阅读:
    事物的五种配置方式(转载)
    Spring入门
    leetcode刷题3
    LeetCode刷题2
    LeetCode刷题1
    bootstraptable使用总结之前端样式设计
    初识Handsontable
    Java之file类
    OpenCV学习系列教程第五篇:测试和提高代码的效率
    OpenCV学习系列教程第四篇:图像的算术操作
  • 原文地址:https://www.cnblogs.com/lemonloves/p/2932646.html
Copyright © 2011-2022 走看看