uno. 理解C++变量的作用域和生命周期

没有要求讲解我就简单注释了一下~

#include <iostream>
int main(){
  for (int i=0;i<10;i++){//alloc memory for i from stack
  // std::cout<<x<<std::endl;//wrong!x has not been announced
  int x;//alloc memory for x from stack
  std::cout<<i<<' '<<x<<std::endl;//ok!
}//x is poped while i is not
// std::cout<<i<<std::endl;//wrong! i is poped
}

due.理解堆和栈,两种内存的申请和释放的方式(栈)

#include<iostream>
using namespace std;
char *wrongdoing()

{

  char t[] = "wroingdoing";

  return t;
}
char *rightway()

{
  char *t = "rightway";
  return t;
}
int main()

{
  cout << wrongdoing()<<endl;//
  cout << rightway()<<endl;// 栈空间这么用就错了。。,已经被pop了
}

tre.理解堆和栈,两种内存的申请和释放的方式(堆)

#include<iostream>
using namespace std;
int *p,*q;
void test()

{
  int *a = new int(255);
  int b = 255;
  p = a;
  q = &b;
}
int main(void)

{
  test();
  cout << *p << endl;//堆上的还没有被清除,除非使用智能指针抑或是delete掉该指针
  cout << *q << endl;//栈上的被pop了
  return 0;
}

quattro. 理解unique_ptr和shared_ptr

unique_ptr:

1.只能进行移动操作无法进行复制赋值操作

2.保存指向某个对象的指针,当它本身被删除释放的时候(比如,离开了某个作用域),会使用给定的删除器释放它指向的对象。

3.如果在进行过程中抛出异常,同样它也会释放内存

shared_ptr:

  1. 有一个计数器保存了当前有多少智能指针对象共享了该内存块。
  2. 在运行了析构函数后,则将计数器减1,直到为1时释放内存
  3. 复制构造的时候计数器加1.

(感觉有点像信号量?)

cinque.草原民族风

#include <iostream>
#include <string>
#define deal(i) \
tmps="";\
for (j=lastword;j<i;j++)\
{\
tmps+=s[j];\
}\
ans[ansl++]=tmps;\
lastword=j+1
using namespace std;
int main()
{
int i,j;
string s,tmps;
std::cin>>s;
string ans[100];int ansl=0;
int lastword=0;
for (i=0;i<s.length();i++)
{
switch(s[i])
{
case ':':case '/':case '.':
deal(i);
if (ans[ansl-1].length()>0)cout<<ans[ansl-1]<<',';
default:
break;
}
}
deal(i);
if (ans[ansl-1].length()>0)cout<<ans[ansl-1];
}

sei .C++11风格,用的正则表达式

#include <regex>
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s;
const regex pattern("(\\://|/|\\.)+");
string change = ",";
cin>>s;
cout<<regex_replace(s, pattern, change)<<endl;
}

work7的更多相关文章

  1. work-7.2

    安装ubuntu,jdk ,git,maven,Intellij. 配置GIT时,需要将在本地生成的公钥粘贴到服务端. 先占个座,具体过程待补充. -------------------------- ...

  2. Java.work7 访问权限、对象使用作业20194651

    题目1: 在作业5的基础上,再创建一个柱体类,包含矩形对象.高和体积等三个成员变量,一个构造方法进行成员变量初始化,和计算体积.换底两个功能方法,在主类中输入长.宽.高,计算柱体体积,输入新的长.宽. ...

  3. 常用的jquery

    获取一组radio被选中项的值 var item = $('input[@name=items][@checked]').val(); 获取select被选中项的文本 var item = $(&qu ...

  4. 在线程中进行读取并写入文件和wenjia

    新人求(胸)罩!!! import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException ...

  5. Cocos2d-x V2.x -- 开发进阶和高级实例教程(一) 转

    第一章 如何在多平台新建Cocos2d-x项目 yangyong2014-06-25 15:04:44848 次阅读 原文链接:   http://cn.cocos2d-x.org/tutorial/ ...

  6. JQuery 常用命令总结

    下面介绍在jQuery中设置form表单中action的值的方法. $("#myFormId").attr("action", "userinfo.s ...

  7. 3、RabbitMQ-work queues 工作队列

    work queues 工作队列 1.模型图: 为什么会出现 work queues? 前提:使用 simple 队列的时候 我们应用程序在是使用消息系统的时候,一般生产者 P 生产消息是毫不费力的( ...

  8. uoj #190. 【集训队互测2016】消失的源代码 提交答案题

    Test 1: 发现是一个字母表的映射 把 \('a' \to 'z'\) 打进去找出映射就好了QAQ . Test 2: 求助 \(dalao\) 得知的点.. 答案是 : \(2016x^2 + ...

  9. Day 14 python 之 字符串练习

    一.字符串总结与练习 #! /usr/bin/env python # -*- coding: utf-8 -*- # __author__ = "DaChao" # Date: ...

随机推荐

  1. jpa-hibernate配置转换

    persistence.xml spring-demo-cfg.xml hibernate配置文件 Spring Data JPA:为简化JPA的开发提供帮助.EntityManager的创建与销毁. ...

  2. asp.net TreeView与XML配合使用v1.1

    刚我在做Tree view 绑定时自己摸索了一下,网上有人说TreeView绑定数据源,用什么递归绑定啥的,我不想看了,就自己试着写了一个 我是这样做的,如果有什么问题请大神指导,我是菜鸟额.. 1: ...

  3. DataGridView控件的使用---添加行

    最简单的方法 可以静态绑定数据源,这样就自动为DataGridView控件添加相应的行. 假如需要动态为DataGridView控件添加新行,方法有很多种,下面简单介绍如何为DataGridView控 ...

  4. 1008. Image Encoding(bfs)

    1008 没营养的破题 #include <iostream> #include<cstdio> #include<cstring> #include<alg ...

  5. UVa 1220 (树的最大独立集) Party at Hali-Bula

    题意: 有一棵树,选出尽可能多的节点是的两两节点不相邻,即每个节点和他的子节点只能选一个.求符合方案的最大节点数,并最优方案判断是否唯一. 分析: d(u, 0)表示以u为根的子树中,不选u节点能得到 ...

  6. 01day1

    最大音量 动态规划 题意:给出一个初始值和一个变化序列 c,在第 i 步可以加上或减去 c[i],求 n 步之后能达到的最大值.有一个限定值 maxlevel,在变化过程中值不能超过 maxlevel ...

  7. 【Java学习笔记】函数使用

    package aaa; public class aaa { public static int add(int a,int b) { return a+b; } public static voi ...

  8. 2014-LAMP兄弟连视频下载地址汇总

    linux 兄弟连2014年新版Linux视频教程百度网盘下载 http://pan.baidu.com/s/1kTsjVfx http://pan.baidu.com/s/1sjJf2OX 兄弟连2 ...

  9. IIS应用程序池回收图文详解

    转:http://blog.sina.com.cn/s/blog_8677fcaa010138uf.html 什么是应用程序池呢?这是微软的一个全新概念:应用程序池是将一个或多个应用程序链接到一个或多 ...

  10. 【转】Intel HEX介绍

    记录格式 Intel HEX由任意数量的十六进制记录组成.每个记录包含5个域,它们按以下格式排列: :llaaaatt[dd...]cc 每一组字母对应一个不同的域,每一个字母对应一个十六进制编码的数 ...