C++ Simplify01-基础语法

参考《C++ Primer第4版》(中文版)

1. 每个C++程序都包含一个活多个函数,而且必须有一个命名为main。系统通过调用main函数来执行程序,main函数执行语句并返回一个值给操作系统。

int main(void)

{

    return 0;  //返回0表明程序成功执行完毕,否则程序异常退出

}

2. C++输入输出用iostream库。istream和ostream分别表示输入流和输出流。

“流”是指要从某种IO设备上读入或写出的字符序列。输入输出使用cin和cout两个对象。

3. endl是一个特殊值,成为操纵符,将它写入输出流时(cout<<endl)可以输出换行,并刷新设备与相关联的缓冲区。“\n”也能换行但是不能清空缓冲区

    清空缓冲区的3种方法:

a.  flush(stdout);  b. cout<< flush;  c.cout.flush;

4. 区分++a和a++:

int a = 0; ++a;  //(++a) = 1 且 a = 1 更高效

int a = 0; a++;  //(a++) = 0 但 a = 1

5.循环结构:

    while(条件表达式)

    {

       …

}

 

do

{

    …

}while(条件表达式);

 

for(初始值;条件;变化值;)

{

    …

}

6.条件分支结构:if(){}else{}    switch{case: }

7.类类型:class关键字声明 包含数据成员和成员函数(普通函数、构造函数、析构函数)

8.C++语言的集中基本类型:字符型、整型、浮点型(变长字符string、vector…)

 

注意:C++中,把负值赋给unsigned对象时完全合法的,其结果是该负数对该类型的取值个数求模后的值。所以,如果把-1赋给8位的unsigned char,那么结果是255,因为255是-1对256求模后的值。

9.字面值常量:24、hello等不能再修改的数据值。

整数常量三种进制:十进制:50;八进制:050(0开头);十六进制:0x50(0x开头).

 long表示:1L   unsigned long:8Lu(UL)  unsigned:128u 

 float表示:4.14159F(f)    扩展精度:12.345L   科学计数法:e(E)后缀

 转义字符:

       通用转义符:\ooo

       ASCII码字符集表示字面值常量:

           \7响铃符   \12换行符       \40空格符     \0空字符                 \062(2)     \115(M)

10.两个相邻的仅由空格、制表符或换行符分开的字符串字面值,可连接成一个新字符串字面值。例如:cout<<”Hello””World”<<endl; 结果输出HelloWorld

   注意:斜杠的好处:(斜杠后面不允许有任何空格或注释)

    cout<< “a multi-line \

       stringliteral \

       usinga backslash”

       <<endl;

    相当于cout<<”amulti-line string literal using a backslash”<<endl;

 

每日三题:2012.07.26

(1).输入一个年份,判断平年还是闰年并输出结果。

(2).输入任意一组数(个数不定)求其最大值和最小值。

(3).解数学灯迷。有以下算式 ABCD-CDC=ABC,其中ABCD均为一位非负整数,求ABCD的值。

源代码将于下一篇贴出。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
根据提供的引用内容,可以看出simplifyPath函数是一个C++函数,用于简化给定的路径。该函数使用了塌边法进行三角面片简化,使得复杂模型可以Mesh得到简化。下面是一个简单的C++示例代码: ```c++ #include <iostream> #include <vector> #include <sstream> using namespace std; class Solution { public: string simplifyPath(string path) { string ans, group; vector<string> strs; stringstream ss(path); while (getline(ss, group, '/')) { if (group == "" || group == ".") continue; if (group == ".." && strs.size()) strs.pop_back(); else if (group != "..") strs.push_back(group); } for (string& str : strs) ans += "/" + str; return ans.size() ? ans : "/"; } }; int main() { Solution s; string path = "/a/./b/../../c/"; cout << s.simplifyPath(path) << endl; // 输出:/c return 0; } ``` 上述代码,我们首先定义了一个Solution类,其包含了一个simplifyPath函数。该函数接受一个字符串类型的参数path,表示需要简化的路径。在函数内部,我们首先定义了三个变量:ans、group和strs。其,ans用于存储简化后的路径,group用于存储每个路径段,strs用于存储所有非"."和".."的路径段。 接下来,我们使用stringstream将path按照"/"进行分割,并将每个路径段存储到group。如果group为空或者为".",则直接跳过;如果group为"..",则将strs最后一个路径段弹出;否则,将group存储到strs。 最后,我们遍历strs的所有路径段,并将它们拼接成一个新的路径ans。如果ans不为空,则返回ans;否则,返回根路径"/"。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值