c++ learning note

时间:2021-08-02 00:41:54

1/  int 转换成 string 格式

#include<sstream>

std::stringstream ss;

str::string temp;

int n;

ss<<n;

ss>>temp;

//再次使用时  需要  ss.clear();  或者重新定义

方法1:

string转换成int

atoi(str.c_str()) 函数

string s; int re;

re= atoi(s.c_str());

方法2 :

int b= stoi(string a);

3.c++中指针数组和数组指针作为函数参数时,该如何传递

#include<iostream>
#include<cstdio>
using namespace std; void FuncT(int iNum, char *asIP[])
{
for (int i = ; i < iNum; ++i)
{
printf("%s\n", asIP[i]);
}
}
int main()
{
char asIP[][];
cout << asIP << " " << asIP[] << endl;
char *p[] ;
p[] = asIP[];
p[] = asIP[]; strcpy_s(asIP[], "172.2.2.1");
strcpy_s(asIP[], "172.23.3.2"); FuncT(, p);
system("pause");
return ;
}
//形参和实参的匹配形式
// 实参 形参
**p **p
p[][] (*p)[]
*p[] **p
(*p)[] *p

  

#include <mem.h> 
void* memset(void* s, int c, size_t n)
{
    unsigned char* p = (unsigned char*) s;
    while (n > 0) {
    *p++ = (unsigned char) c;
    --n;
    }
    return s;

memset()的函数, 它可以一字节一字节地把整个数组设置为一个指定的值。
memset()函数在mem.h头文件中声明,它把数组的起始地址作为其第一个参数,
第二个参数是设置数组每个字节的值,第三个参数是数组的长度(字节数,不是元素个数)。

4/ C++中禁止 拷贝构造函数 和 赋值构造函数

设为private ,但是这种方法 它的 friend class 和 friend 函数 都可以访问拷贝构造

c++11 标准中可以通过delete操作禁掉 他们

  T(T&temp)=delete;          // 再次调用拷贝构造函数 会报错

  T& operator=(T&temp)=delete;

5/ 随机函数 rand()/  srand()

rand  stdilb.h 中

rand() 产生的是伪随机数,每次产生的是相同的值

如果想要产生不同的随机数用srand函数

srand((unsigned)time(0));