c++ learning note

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 = 0; i < iNum; ++i)
    {
        printf("%s
", asIP[i]);
    }
}
int main()
{
    char asIP[20][16];
    cout << asIP << "    " << asIP[0] << endl;
    char *p[20] ;
    p[0] = asIP[0];
    p[1] = asIP[1];

    strcpy_s(asIP[0], "172.2.2.1");
    strcpy_s(asIP[1], "172.23.3.2");
    

    FuncT(2, p);
    system("pause");
    return 0;
}
//形参和实参的匹配形式
// 实参           形参    
    **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));

原文地址:https://www.cnblogs.com/NeilZhang/p/5693102.html