C++牛客知识点2

2023-12-16

提示:接上文


前言

提示:这里可以添加本文要记录的大概内容:

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:接上文

12月9号

来源: 牛客网公司真题_免费模拟题库_企业面试|笔试真题

1、题目1

在C++程序中,如有如下语句:

int b = 5;

int a = 10;

int &i = b;

int *j = &a;

int *&k = j;

请问下列哪个操作不能实现把a赋值为5。答案B。

A、a = i;

B、k = &b;

C、*k = i;

D、*j = *&b;

解释:答案作对了,但是我当时对int *&k = j;是很懵逼的,看了牛客评论区,感觉有个知识盲区,就是【int &a=b这种a是指针常量】

int *&k = j;          //这里也是个声明:代表k 是 j 的另一个别名,可以把 j 和 k 等价(类型是int*)

2、题目2

64 位电脑运行 C++ 结果输出(C)

#include <iostream>
using namespace std;
 
class A {
    char a[2];
public:
    virtual void aa() {};
};
 
class B : public virtual A {
    char b[2];
    char a[2];
public:
    virtual void bb() {};
    virtual void aa() {};
};
 
class C : public virtual B {
    char a[2];
    char b[2];
    char c[2];
public:
    virtual void cc() {};
    virtual void aa() {};
    virtual void bb() {};
};
 
int main() {
    cout << sizeof(A) << endl << sizeof(B) << endl << sizeof(C);
    return 0;
}

A、8 16 24

B、16 32 36

C、16 32 48

D、8 20 24

解释:

对于对象 A,包含一个虚函数指针,因此对齐到 8 字节,然后有 2 个 char 型,最后补齐到 8 字节整倍数,因此其长度为 16 。

对于对象 B,包含一个虚函数指针,也是对齐到 8 字节,然后是 4 个 char 型,最后补齐到 8 字节整倍数,变成 16 字节。然后加上对象 A 的大小,共计 32 字节。

对于对象 C,包含一个虚函数指针,也是对齐到 8 字节,然后是 6 个 char 型,最后补齐到 8 字节整倍数,变成 16 字节。然后加上对象 B 的大小,共计 48 字节。

GCC共享虚函数表指针,也就是说父类如果已经有虚函数表指针,那么子类***享父类的虚函数表指针空间,不在占用额外的空间,这一点与VC不同,VC在虚继承情况下,不共享父类虚函数表指针

这个题目我发现其实我并没有完全理解啊,当我想验证不加virtual继承的时候,突然发现没理解

验证代码

#include <iostream>
using namespace std;

class A {
    char a[2];
public:
    virtual void aa() {};
};

class B : public virtual A {
    char b[2];
    char a[2];
public:
    virtual void bb() {};
    virtual void aa() {};
};

class C : public virtual B {
    char a[2];
    char b[2];
    char c[2];
public:
    virtual void cc() {};
    virtual void aa() {};
    virtual void bb() {};
};

int main() {
    cout << sizeof(A) << endl << sizeof(B) << endl << sizeof(C);
    return 0;
}

//8
//16
//28


这边并没有出现8-16-24是因为sizeof(c) = sizeof(a) + sizeof(b) + 3*sizeof(char) * 2 + 4,加上对齐,就是sizeof(c)  = sizeof(a) + sizeof(b) + 8+4 = 28。

不加virtual结果是这样的

#include <iostream>
using namespace std;

class A {
    char a[2];
public:
    virtual void aa() {};
};

class B : public A {
    char b[2];
    char a[2];
public:
    virtual void bb() {};
    virtual void aa() {};
};

class C : public B {
    char a[2];
    char b[2];
    char c[2];
public:
    virtual void cc() {};
    virtual void aa() {};
    virtual void bb() {};
};

int main() {
    cout << sizeof(A) << endl << sizeof(B) << endl << sizeof(C);
    return 0;
}


//8
//12
//16

这边又不不懂了,评论区有人评论: 普通继承的时候共享,虚继承的时候不共享

这边还要仔细了解下啊

3、题目3

下面程序的执行结果:答案E

class A{
    public:
        long a;
};
class B : public A {
    public:
        long b;
};
void seta(A* data, int idx) {
    data[idx].a = 2;
}
int main(int argc, char *argv[]) {
    B data[4];
    for(int i=0; i<4; ++i){
        data[i].a = 1;
        data[i].b = 1;
        seta(data, i);
    }
    for(int i=0; i<4; ++i){
         std::cout << data[i].a << data[i].b;
    }
    return 0;
}

A、11111111

B、12121212

C、11112222

D、21212121

E、22221111

3、题目3

下面程序的执行结果:答案E

class A{
    public:
        long a;
};
class B : public A {
    public:
        long b;
};
void seta(A* data, int idx) {
    data[idx].a = 2;
}
int main(int argc, char *argv[]) {
    B data[4];
    for(int i=0; i<4; ++i){
        data[i].a = 1;
        data[i].b = 1;
        seta(data, i);
    }
    for(int i=0; i<4; ++i){
         std::cout << data[i].a << data[i].b;
    }
    return 0;
}

A、11111111

B、12121212

C、11112222

D、21212121

E、22221111

解释:

首先明确, A类 大小为 4字节;B 类大小为 8字节
因为B继承自A,基类A有一个long,4字节,派生类B继承A的long加上自身定义了一个long,4+4=8个字节。

所以,A类指针+1移动4字节,B类指针+1移动8字节,所以A类指针和B类指针的移动步长不相同

void seta(A* data, int idx)  { data[idx].a = 2;  }
由代码可知,此处传入的实参为B类,而形参却为A类,所以这里就是使用基类A类指针来操作,子类B类的数据。
因为A类和B类指针步长不同的原因,就会出现指针实际操作的目标地址,与想象中的目标地址不相同

下面展示,此例题中,因为指针步长不同的原因,所对应的操作地址

在这里插入图片描述

因此每执行一次此函数,就会进行4字节对应地址的数据替换。

所以答案就为22221111
因此类推,若将此函数void seta(A* data, int idx);中的A类改为B类,就不会存在指针步长不同的问题,答案就会是21212121

个人感想,这个题目还涉及到有个点就是实参和形参是基类和子类的时候,指向的数据内存其实是实现的内存空间,后面这个点加以注意。这个好像经常出现的情况,比如基类指针指向子类对象或者基类对象,情况是不用的。

12月10号

牛客网公司真题_免费模拟题库_企业面试|笔试真题

1、题目1

通过基类对象名、指针只能使用从基类继承的成员。答案A

A、T

B、F

解释:这个题目就涉及到一个问题,基类指针、子类指针、基类对象、子类对象等问题。

我来整理一下吧,

就是基类指针可以指向基类和子类对象。但是基类指针指向子类对象不能访问子类的新的成员。子类指针指向基类对象有风险。

基类指针指向子类对象需要使用虚函数virtual实现多态,即调用子类的重写的成员函数。基类指针指向基类虚函数,还是调用基类虚函数。即基类指针调用实际指向的对象中的虚函数。

基类指针只能访问基类的重定义函数。子类对象只能访问子类的重定义函数。

传参时,比如子类传给基类,这边搞不清了。不过上述都对应题目和解答,再回顾一下就可以。

看上述的解答,子类传参赋给基类,还是调用子类的虚函数。调用不是虚函数则调用基类的成员函数。基类传给基类不用说了。基类传给子类有风险。

下面代码是验证上面的表述

class A
{
    public:
    A()
    {

    }
    virtual ~A()
    {

    }
    void funWithoutVirtual()
    {
        std::cout << "it is A funWithoutVirtual()" << endl;
    }
    virtual func()
    {
        std::cout << "it is A func()" << endl;
    }
    int funcA()
    {
        std::cout << "it is A funcA()" << endl;
    }
};


class B : public A
{
    public:
    B()
    {

    }
    virtual ~B()
    {

    }
    void funWithoutVirtual()
    {
        std::cout << "it is B funWithoutVirtual()" << endl;
    }
    virtual func()
    {
        std::cout << "it is B func()" << endl;
    }

    int funcB()
    {
        std::cout << "it is B funcB()" << endl;
    }
};

void testFunc(A* a)
{
    a->func();          //看下子类传给基类是不是正常调用子类虚函数,验证是的
    //a->funcB();         //error: 'class A' has no member named 'funcB'
}

int main()
{

    A* a = new A;
    a->func();
    //a->funB();


    B b;
    b.funcA();      //验证子类对象可以基类成员,可以

    A* a2 = new B;
    a2->func();     //看下基类指针指向子类对象是否正常调用子类虚函数,验证是的

    testFunc(&b);


    return 0;
}

12月11号

牛客网公司真题_免费模拟题库_企业面试|笔试真题

1、题目1

在64位系统中,有如下类:

class C
{
public:
    char a;
    static char b;
    void *p;
    static int *c;
    virtual void func1();
    virtual void func2();
};

那么sizeof(C)的数值是(D)

A、9

B、17

C、32

D、24

解释:参考答案:应该是D sizeof(类)计算的是类中存在栈中的变量的大小,而类中的b和*c都是static静态变量,存在全局区中,因此不在计算范围之内,于是只剩下char a,void *p和两个virtual虚函数,a是char类型,占用一个字节,p是指针,在64位系统的指针占用8个字节,而两个虚函数只需要一个虚函数表指针,也是八个字节,加上类中的对齐方式(char a对齐时后面补上7个字节),故答案为24.

评论区一个评论:

1 sizeof是用来计算栈大小,不涉及全局区,故类的静态成员大小sizeof不涉及。

2 本题中的虚函数属于同一个类,故只需要一个指针指向虚函数表,所以在64位系统中占用8个字节。就算本题有100个虚函数,那么也只占用8个字节。

综上,占用栈空间的成员有:a, p, func1, func2,由于64位对其,故总空间为8+8+8=24字节。

2、题目2

以下程序的打印结果是(A)

#include<iostream>
using namespace std;
 
void swap_int(int a , int b)
{
    int temp = a;
    a = b;
    b = temp;
}
 
void swap_str(char*a , char*b)
{
    char*temp = a;
    a = b;
    b = temp;
}
 
int main(void)
{
    int a = 10;
    int b = 5;
    char*str_a = "hello world";
    char*str_b = "world hello";
    swap_int(a , b);.
    swap_str(str_a , str_b);
    printf("%d %d %s %s\n",a,b,str_a,str_b);
 
    return 0;
}

A、10 5 hello world world hello

B、10 5 world hello hello world

C、5 10 hello world world hello

D、5 10 world hello hello world

解释

#include<iostream>
using namespace std;

void swap_int_with_yinyong(int &a , int &b)
{
    int temp = a;
    a = b;
    b = temp;
}

void swap_int_with_pointer(int* a , int* b)
{
    int temp = *a;
    *a = *b;
    *b = temp;
}

void swap_str(char*a , char*b)
{
    char*temp = a;
    a = b;
    b = temp;
}

void swap_str_with_pointer(char**a , char**b)
{
    char*temp = *a;
    *a = *b;
    *b = temp;
}

int main(void)
{
    int a = 10;
    int b = 5;
    char*str_a = "hello world";
    char*str_b = "world hello";
    printf("before exchange: %d %d\n",a,b);
    swap_int_with_yinyong(a , b);
    printf("exchange a b with yinyong:");
    printf("%d %d\n",a,b);

    printf("\nbefore exchange: %d %d\n",a,b);
    swap_int_with_pointer(&a , &b);
    printf("exchange a b with pointer:");
    printf("%d %d\n",a,b);

    printf("\nbefore exchange: %s %s\n",str_a,str_b);
    swap_str(str_a , str_b);
    printf("exchange str useless:");
    printf("%s %s\n",str_a,str_b);

    printf("\nbefore exchange: %s %s\n",str_a,str_b);
    swap_str_with_pointer(&str_a , &str_b);
    printf("exchange str with pointer:");
    printf("%s %s\n",str_a,str_b);

    return 0;
}


//before exchange: 10 5
//exchange a b with yinyong:5 10
//
//before exchange: 5 10
//exchange a b with pointer:10 5
//
//before exchange: hello world world hello
//exchange str useless:hello world world hello
//
//before exchange: hello world world hello
//exchange str with pointer:world hello hello world

12月14号

牛客网公司真题_免费模拟题库_企业面试|笔试真题

1、题目1

下面有关c++内存分配堆栈说法错误的是?答案D

A、对于栈来讲,是由编译器自动管理,无需我们手工控制;对于堆来说,释放工作由程序员控制

B、对于栈来讲,生长方向是向下的,也就是向着内存地址减小的方向;对于堆来讲,它的生长方向是向上的,是向着内存地址增加的方向增长。

C、对于堆来讲,频繁的 new/delete 势必会造成内存空间的不连续,从而造成大量的碎片,使程序效率降低。对于栈来讲,则不会存在这个问题

D、一般来讲在 32 位系统下,堆内存可以达到4G的空间,但是对于栈来讲,一般都是有一定的空间大小的。

解释:我做对了,但是对于D选项还是不太懂。看了解释,32位系统寻址大小是2^32=4,294,967,296Byte(字节)。2^32=4,294,967,296Byte(字节)/1024(KB)=4,194,304KB=4,194,304KB/1024(M)=4096M=4GB;

而且评论区有人这样说:一般0~3G是用户空间,3G~4G是内核空间, 所以堆内存不应该达到4G。

2、题目2

What’s the runtime behavior of below code piece?(单选B)

int *p = (int *)malloc(sizeof(int));
p = NULL;
free(p);

A、Compiling error: free can't be applied on NULL pointer

B、Memory leak happens

C、Dangling pointer is generated

D、May crash when free() is called with NULL input

解释:这题做对了。但是是查了下free空指针后。

free可以作用于空指针,不会报错。

Dangling pointer悬挂指针、空指针。指指针对应的内存空间已经释放了,但是指针依然指向那块内存空间。这种指针指向的内存空间释放后没有置空的指针,就叫Dangling pointer。处理方法,指向内存空间释放后指针置空。

12月15号

牛客网公司真题_免费模拟题库_企业面试|笔试真题

1、题目1

下列说法错误的是(ABCD)

A、派生类不能访问通过私有继承的基类的保护成员

B、多继承的虚基类不能够实例化

C、如果基类没有默认构造函数,派生类就应当声明带形参的构造函数

D、基类的析构函数和虚函数都不能够被继承,需要在派生类中重新实现

解释:我自己选的是C。

这里还有个知识点盲区就是虚基类。

未完待续......


总结

总结牛客C++题目错题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++牛客知识点2 的相关文章

  • 在 XML 中,带问号的节点叫什么?在 C# 中如何添加它们?

    以下是在 InfoPath 中创建的 XML 文件的示例
  • -ffast-math 可以安全地用于典型项目吗?

    在回答我建议的问题时 ffast math 有评论指出这是危险的 我个人的感觉是 在科学计算之外 是可以的 我还假设严肃的金融应用程序使用定点而不是浮点 当然 如果你想在你的项目中使用它 最终的答案是在你的项目上测试它 看看它有多大影响 但
  • std::map find 在 C++ 中不起作用[重复]

    这个问题在这里已经有答案了 我使用以下几行创建了一个哈希映射和一个迭代器 std map
  • C++ STL 映射,std::pair 作为键

    这就是我通过地图定义的方式 std map
  • 地图类容器的专用功能

    我想要专门为矢量和地图之类的容器设计一个函数模板 对于向量 我可以像下面那样做 但我不知道如何才能有一个专门版本的函数 该函数仅用于像地图这样的容器 include
  • MVVM:来自 FileOpenPicker 的图像绑定源

    我将 OnActivated 添加到 app xaml cs 中 它可以正常工作 protected async override void OnActivated IActivatedEventArgs args var continua
  • 字符串/分段错误

    Program to calculate trip and plan flights define TRIP 6 define NAMEMAX 40 define DEST 1 include
  • 二叉树和快速排序?

    我有一个家庭作业 内容如下 别生气 担心 我是not请你帮我做作业 编写一个程序 通过使用二分查找的快速排序方法对一组数字进行排序 树 推荐的实现是使用递归算法 这是什么意思 到目前为止 这是我的解释 正如我在下面解释的那样 我认为两者都有
  • 使用c#在mac上启动外部进程

    我成功地使用 System Diagnostics Process Start 在 Windows 上启动我的外部单声道可执行文件 然而在mac上却失败了 我没有收到任何错误 只是什么也没发生 我尝试按以下方式进行操作 System Dia
  • 仅使用一个 #include 表达式一次包含多个头文件?

    是否有任何表达式可以使语法一次包含多个标头 而无需为每个新文件编写 include 表达式 例如 include
  • 我应该使用字节还是int?

    我记得曾在某处读到 即使您只需要字节 使用 Int32 更好 就性能而言 它 据说 仅适用于您不关心存储的情况 这是有效的吗 例如 我需要一个保存一周中某一天的变量 我是吗 int dayOfWeek or byte dayOfWeek E
  • 在 C++ 中,为什么 const 也可以工作时编译器选择非常量函数? [复制]

    这个问题在这里已经有答案了 例如 假设我有一堂课 class Foo public std string Name m maybe modified true return m name const std string Name cons
  • 我想找到 C# 代码中所有后面没有括号的 if 语句。通过正则表达式

    我想找到所有if声明和for后面没有大括号的语句 当你在一个文件中写入一行时if声明您大多不会将其括在大括号中 所以我想找到所有这些if and for声明 请帮忙 就像我想捕捉这个声明 if childNode Name B return
  • 对列表中的一系列整数求和

    假设我有一个这样的列表 List
  • 如何通过分解 y 轴来减小 mschart 的高度

    如何降低 mschart 的高度 如下所示 编辑 就我而言 我不想查看中断图表 this chart1 ChartAreas 0 AxisY ScaleBreakStyle Enabled false 您似乎正在寻找AxisY ScaleB
  • 如何处理文件名中的空格

    我正在尝试迭代本地目录中的文件 foreach string name in Directory GetFileSystemEntries path FileAttrtibutes att File GetAttributes name 文
  • ArrayList 有什么问题?

    最近我问了一个关于 SO 的问题 其中提到了可能使用 c ArrayList 来解决问题 有人评论说使用数组列表不好 我想了解更多有关此的信息 我以前从未听说过关于数组列表的这种说法 有人可以带我了解使用数组列表可能出现的性能问题吗 C n
  • 使用属性和性能

    我正在优化我的代码 我注意到使用属性 甚至自动属性 对执行时间有深远的影响 请参阅下面的示例 Test public void GetterVsField PropertyTest propertyTest new PropertyTest
  • 在for循环中声明和初始化变量

    可以简单写一下吗 for int i 0 代替 int i for i 0 在 C 或 C 中 并且会变量i只能在循环内部访问 它在 C 中有效 它在 C 的原始版本中是不合法的 但在 C99 中被采用为 C 的一部分 当时一些 C 功能被
  • Web 和 winforms 的 .Net 身份验证

    我有一个为客户端构建的 ASP NET Web 应用程序 它使用默认的 ASP NET 表单身份验证 他们现在请求一个能够 与 Web 应用程序一起工作的桌面 WinForms 应用程序 我已经创建了 Web 服务来访问他们想要从 Web

随机推荐

  • google Protobuf

    之前一直把第三方开源库protobuf编译 但是么用过没了解过 这次正好看到这篇文章 文章目录 前言 一 pandas是什么 二 使用步骤 1 引入库 2 读入数据 总结 前言 网易看到的protobuf的新闻 然后百度查到原文 记录一下
  • Jenkins部署python接口自动化测试

    一 点击新建Item 二 指定源码和分支 私钥位置 C Users Administrator ssh 文件下 三 构建脚本编写 四 构建后操作 指定输出的 allure 结果目录 总结 感谢每一个认真阅读我文章的人 作为一位过来人也是希望
  • arm平台编译so文件回顾

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 几个点 二 回顾过程 1 上来就执行Makefile 2 编译第三方开源库 a文件 2 1 build sh脚本 2 2 Make
  • 聊聊Api接口优化的几个方法!

    我负责的系统到2021年初完成了功能上的建设 开始进入到推广阶段 随着推广的逐步深入 收到了很多好评的同时也收到了很多对性能的吐槽 刚刚收到吐槽的时候 我们的心情是这样的 当越来越多对性能的吐槽反馈到我们这里的时候 我们意识到 接口性能的问
  • 14:00面试,14:08就出来了,问的问题有点变态。。。。。。

    从小厂出来 没想到在另一家公司又寄了 到这家公司开始上班 加班是每天必不可少的 看在钱给的比较多的份上 就不太计较了 没想到5月一纸通知 所有人不准加班 加班费不仅没有了 薪资还要降40 这下搞的饭都吃不起了 还在有个朋友内推我去了一家互联
  • 性能测试工具 —— 掌握JMeter性能测试工具的入门要点!

    JMeter 是一款很优秀的开源性能测试工具 从性能工具的原理划分 Jmeter工具和其他性能工具在原理上完全一致 工具包含4个部分 1 负载发生器 通过多线程模拟并发 对目标产品产生负载 2 用户运行器 通常是一个脚本运行引擎 用户运行器
  • 报错处理集

    这个报错处理集的错误来源于编译arm平台的so文件产生的 但是后续可以补充成linux一个大的错误处理集 文章目录 前言 一 pandas是什么 二 使用步骤 1 引入库 2 读入数据 总结 前言 第一次整理的时间是2023年12月8日10
  • 测出Bug就完了?从4个方面教你Bug根因分析

    01 现状及场景 1 缺失bug根因分析环节 工作10年 虽然不是一线城市 也经历过几家公司 规模大的 规模小的都有 针对于测试行业很少有Bug根因环节 主流程基本上都是测试提交bug 开发修改 测试验证 发送报告 测试环节结束 往往有下面
  • 欧拉操作系统

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 pandas是什么 二 使用步骤 1 引入库 2 读入数据 总结 前言 提示 这里可以添加本文要记录的大概内容 这个章节主要是介绍一下欧拉操作系统 欧拉系
  • STM32超声波——HC_SR04

    文章目录 一 超声波图片 二 时序图 三 超声波流程 四 单位换算 五 取余计算 六 换算距离 七 超声波代码 一 超声波图片 测量距离 2cm 400cm 二 时序图 1 以下时序图要先提供一个至少10us的脉冲触发信号 告诉单片机我准备
  • 商城免 费搭建之java鸿鹄云商 java电子商务商城 Spring Cloud+Spring Boot+mybatis+MQ+VR全景+b2b2c

    saas云平台 打造全行业全渠道全场景的saas产品 为经营场景提供一体化解决方案 门店经营区域化 网店经营一体化 本地化 全方位 一站式服务 为多门店提供统一运营解决方案 提供丰富多样的营销玩法覆盖所有经营场景 助力商家成功 系统稳定压倒
  • Jmeter+ant+jenkins接口自动化测试

    平台简介 一个完整的接口自动化测试平台需要支持接口的自动执行 自动生成测试报告 以及持续集成 Jmeter 支持接口的测试 Ant 支持自动构建 而 Jenkins 支持持续集成 所以三者组合在一起可以构成一个功能完善的接口自动化测试平台
  • Java版企业电子招标采购系统源码—鸿鹄电子招投标系统-企业战略布局下的采购寻源

    项目说明 随着公司的快速发展 企业人员和经营规模不断壮大 公司对内部招采管理的提升提出了更高的要求 在企业里建立一个公平 公开 公正的采购环境 最大限度控制采购成本至关重要 符合国家电子招投标法律法规及相关规范 以及审计监督要求 通过电子化
  • Java版企业电子招标采购系统源码Spring Cloud + Spring Boot +二次开发+ MybatisPlus + Redis tbms

    功能描述 1 门户管理 所有用户可在门户页面查看所有的公告信息及相关的通知信息 主要板块包含 招标公告 非招标公告 系统通知 政策法规 2 立项管理 企业用户可对需要采购的项目进行立项申请 并提交审批 查看所有的立项信息 主要功能包含 招标
  • Java版直播商城规划:电商源码、小程序、三级分销与免费搭建全攻略

    SAAS云平台 打造全行业全渠道全场景的SaaS产品 为店铺经营场景提供一体化解决方案 门店经营区域化 网店经营一体化 本地化 全方位 一站式服务 为多门店提供统一运营解决方案 提供丰富多样的营销玩法覆盖所有经营场景 助力商家成功 系统稳定
  • 如何使用Fiddler进行弱网测试

    测试APP web经常需要用到弱网测试 也就是在信号差 网络慢的情况下进行测试 我们自己平常在使用手机APP时 在地铁 电梯 车库等场景经常会遇到会话中断 超时等情况 这种就属于弱网 普通的弱网测试可以选择第三方工具对带宽 丢包 延时等模拟
  • 字节跳动面试挂在2面,复盘后,决定二战.....

    先说下我基本情况 本科不是计算机专业 现在是学通信 然后做图像处理 可能面试官看我不是科班出身没有问太多计算机相关的问题 因为第一次找工作 字节的游戏专场又是最早开始的 就投递了 投递的是游戏测试开发岗 字节是自己投的第一家公司 也是第一家
  • 【C++】手撕string思路梳理

    目录 基本思路 代码实现 1 构建框架 2 构建函数重载 3 迭代器 4 遍历string 5 resetve 开空间 insert任意位置插入push back append 按顺序依次实现 6 erase删除 clear清除 resiz
  • 醒醒吧,这才叫自动化测试最全教程,看完可就业!

    最近看到很多粉丝在后台私信我 叫我做一期自动化测试的教程 其实关于这个问题 我也早就在着手准备了 我录制了一整套完整的Python自动化测试的教程 都上传在网盘里 大家有兴趣的可以去看一下 一 自动化测试概念 Python自动化测试就是把以
  • C++牛客知识点2

    提示 接上文 文章目录 前言 一 pandas是什么 二 使用步骤 1 引入库 2 读入数据 总结 前言 提示 这里可以添加本文要记录的大概内容 例如 随着人工智能的不断发展 机器学习这门技术也越来越重要 很多人都开启了学习机器学习 本文就