C++学习笔记

C++编译过程:

g++ -o Test.ii -E Test.cpp
将.cpp转换成预处理文件.ii,即处理#inclide

g++ -o Test.s -S Test.ii
将预处理文件.ii转换成汇编文件.s

g++ -o Test.o -c Test.s
将汇编文件.s转换成二进制文件.o

g++ -o Test.exe Test.o
将二进制文件.o转换成可执行文件.exe

vector容器:

//迭代器:
#include <vestor>
vector<int> v={1,2,3};
vector<int>::iterator i;
for(i=v.begin();i!=v.end();++i){}

//排序
#include <algorithm>
sort(v.begin(),v.end());
resort(.begin(),v.end());
指针:

void*指针同样存放内存地址,但指向的内容类型不确定。

char *test;

cout<<test<<endl

会输出字符串而不是地址,因为char指针默认输出字符串。

解决方法: 

cout<<(void*)test<<endl
计算机相关:

存储器:

内部存储器:

主存(随机访问存储器(RAM))【断电丢失】,只读存储器(ROM)【断电不丢失】

外部存储器:

硬盘,U盘……

short int(2字节)取值范围:

1000000000000000~01111111111111111

转换为十进制:-32768(2^15)~+32767(2^15-1)

有符号二进制数负数的符号位可以当做数值位,故最负的数为在1000000000000000

定位文件流指针所在位置:

    ifstream in("test.txt");
    //移动至文件末尾
    in.seekg(0,ios::end); 
    //定位指针位置
    streampos sp=in.tellg();
获取系统时间:
#include<time.h>
char* get_time() {
    char* system_time;
    char* temp;
    time_t t_t = time(NULL);
    strftime(system_time, sizeof(system_time), "%Y-%m-%d-%X-%A", localtime(&t_t));
    return system_time;
}
类型转换:
/*字符串转换成字符指针*/
char* str_to_c(string& str)
{
    char *result = &str[0];
    for (int i = 1; i < str.length() + 1; i++)
    {
        *(result + i) = str[i];
    }
    return result;
}

字符串转换成整型,浮点型:

//浮点型
f=atof(str);
//整型
i=atoi(str);
map容器按value排序:

  map集合默认是以key排序的,但因为key是不能重复的,当插入相同key的值时该key之前的值会被替换掉,但有时我们需要用key来排序但为了解决不可重复问题,将其作为value,然后通过value的值既原先的key来排序
实现如下:

#include<vector>
#include <algorithm>  
map<int, int> maps;
map<int, int>::iterator it;
struct CmpByValue {
    bool operator()(const pair<int,int>& lhs, const pair<int, int>& rhs) {
        return lhs.second < rhs.second;
    }
};
void main(){
    maps.insert(pair<int,int>(1, 10));
    maps.insert(pair<int, int>(2, 13));
    maps.insert(pair<int, int>(9, 4));
    maps.insert(pair<int, int>(7, 5));
    it =maps.begin();
    vector<pair<int, int>> vectors(maps.begin(),maps.end());
    sort(vectors.begin(), vectors.end(), CmpByValue());
    for (int i = 0; i < vectors.size(); i++) {
        cout << vectors[i].first << endl;
    }
}

9 7 1 2

整形转换成字符串
to_string()
字符串转换成字符数组
//char[],const char*
strcpy_s(cs, e.c_str());
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值