是0不是1

文章详细介绍了C++的基础知识,包括变量声明、浮点数与double类型、内存空间计算、科学计数法、字符处理、字符串操作、循环结构(for、while、do-while)、布尔类型、数据输入、运算符、if-else与switch语句,以及算法示例如两数之和、回文数检测和数组去重等。
摘要由CSDN通过智能技术生成

C++基础知识

第一个C++程序

#include<iostream>
using namespace std;
int main()
{
    cout << "hello world" << endl;
    system("pause");

    return 0;
}

浮点数的声明与使用,以及输出变量值和计算内存空间大小。

#include <iostream>
using namespace std;
int main()
{
    float f1 = 3.14f;//加上‘f’后缀表示是float类型
    cout << f1 << endl;
    double d1 = 3.14;//对于浮点数变量的声明,如果是double类型,不需要在数字后面加d
    cout << d1 << endl;
    //统计float和double所占的内存空间
    cout << "float所占的内存空间:" << sizeof(float) << endl;//sizeof关键字统计数据类型所占内存大小
    cout << "double所占的内存空间:" << sizeof(double) << endl;
    //科学计数法
    float f2 = 3e2;
    cout << "f2=" << f2 << endl;
    float f3 = 3e-2;
    cout << "f3=" << f3 << endl;
#include <iostream>
using namespace std;
int main()
{
    //字符型变量创建方式
    char ch = 'a';
    cout << ch << endl;
    //字符型变量所占内存空间大小
    cout << "char字符型所占内存:" << sizeof(ch) << endl;
    //字符型变量对应的ASCII编码
    cout << (int)ch << endl;
    system("pause");

    return 0;
}




//f2 = 300
cout << "f2=" << f2 << endl;
//300
cout << f2 << endl;

字符串型

#include <iostream>
#include <string>
using namespace std;
int main()
{
    string ss = "hello C++";
    cout << ss << endl;
    system("pause");

    return 0;
}

 

关于字符型变量 

#include <iostream>
using namespace std;
int main()
{
    //字符型变量创建方式
    char ch = 'a';
    cout << ch << endl;
    //字符型变量所占内存空间大小
    cout << "char字符型所占内存:" << sizeof(ch) << endl;
    //字符型变量对应的ASCII编码
    cout << (int)ch << endl;
    system("pause");

    return 0;
}

三个循环

--for循环:知道循环多少次

for(int i=0;i<10;i++)
    {
        cout << i << endl;
    }

--while循环:循环到满足一个条件(先判断一次,再循环)

#include <iostream>
using namespace std;
int main()
{
    int num = 0;
    while (num<10)
    {
        cout << num << endl;
        num ++;
    }
    return 0;
}

--do while循环:至少运行一次,循环到满足条件(直接运行,后判断)

#include <iostream>
using namespace std;
int main()
{
    int num = 0;
    do 
    {
        cout << num << endl;
        num ++;
    }while (num < 10);
    return 0;
}

嵌套循环

 

布尔类型

#include <iostream>
using namespace std;
int main()
{
    //创建bool类型
    bool flag = true;
    bool flag1 = false;
    cout << flag << endl;
    cout << flag1 << endl;
    //查看内存空间
    cout << "bool类型所占的内存空间" << sizeof(flag) << endl;
    system("pause");

    return 0;
}

数据的输入

#include <iostream>
using namespace std;
int main()
{
    int a;
    cout << "请输入a的值:" << endl;
    cin >> a;
    cout << "你输入的值是:" << a << endl;

    return 0;
}

运算符

== “比较”

= “赋值”

if语句


#include <iostream>
using namespace std;
int main()
{
    cout << "请输入一个分数:" << endl;
    int score;
    cin >> score;
    if(score > 600)
        cout <<"你考上一本" << endl;
    else if(score>500)
        cout <<"你考上二本" << endl;
    else
        cout <<"你二战" << endl;

    return 0;
}

switch语句

/**
switch(value)
{
    case 结果1: 执行语句; break;
    case 结果2: 执行语句; break;
    ....
    default:执行语句,break;
}
**/

#include <iostream>
using namespace std;
int main()
{
    cout << "请给电影打分" << endl;
    int score = 0;
    cin >> score;
    switch(score)
    {
        case 3:
            cout << "你打的电影评分是": << score << endl;
            break;
        case 6:
            cout << "你打的电影评分是": << score << endl;
            break;
        case 9:
            cout << "你打的电影评分是": << score << endl;
            break;
        case 4:
            cout << "你打的电影评分是": << score << endl;
            break;
        default:
            cout << "你打的是其他分数": << score << endl;
            break;
    }
    return 0;
}

 

第1题 两数之和

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
  for (int i=0;i<nums.size();i++){
      for(int j=i+1;j<nums.size();j++){
          int sum = nums[i]+ nums[j];
          if(sum == target){
              return {i,j};
          }
      }
  }   
      return {};  
 }
};

第9题 回文数

class Solution {
public:
    bool isPalindrome(int x) {
        string str=to_string(x);
        int len = str.length();
        if(len <=1)
            return true;
        for(int i=0;i<=len/2;i++){
            if(str[i]!=str[len-i-1])
                return false;
        }
            return true;
    }
};

第13题 罗马数字转整数

class Solution {
public:
    int romanToInt(string s) {
        map<char,int> m;
        
        m['I'] = 1;
        m['V'] = 5;
        m['X'] = 10;
        m['L'] = 50;
        m['C'] = 100;
        m['D'] = 500;
        m['M'] = 1000;

        int ans = 0;
        for(int i=0;i<s.length();i++){
            if(m[s[i]]<m[s[i+1]]){
                ans -= m[s[i]];
            }
            else{
                ans += m[s[i]];
            }
        }
         return ans;
    }
};

map语法 

#include <iostream>
#include <map>

int main()
{
  map <char,int> m;

  m['a'] = 1;
  m['b'] = 2;
}

 第14题 最长公共前缀

class Solution {
public:
    string longestCommonPrefix(vector<string>& strs) {
     if(strs.empty())
     {
         return "";
     }
     string res = strs[0];
     for(int i=1;i<strs.size();i++)
     {
            for(int j=0;j<res.length();j++)
            {
                if(res[j]==strs[i][j])
                    continue;
                else
                {
                    res.erase(j);
                    break;
                }
            }
      }
      return res;
        
    }
};

第26题 删除有序数组中的重复项

class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
    if(nums.size() == 0){
        return 0;
    }    
    int i = 0;
    for(int j = 1;j<nums.size();j++){
       if(nums[i] != nums[j]){
           i++;
           nums[i] = nums[j];
       }
    }
    return i + 1;
    }
};

双指针算法:慢指针用于记录不重复元素的位置,快指针用于遍历整个数组

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值