C C++最全C++笔记 5(2),2024年最新这份1307页C C++面试全套真题解析

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

	cout << *it << " ";//解引用

}

cout << endl;

}

void test01()

{

vector<int> v1; //无参构造

for (int i = 0; i < 10; i++)

{

	v1.push_back(i);

}

printVector(v1);



vector<int> v2(v1.begin(), v1.end());

printVector(v2);



vector<int> v3(10, 100);//传入10个100

printVector(v3);



vector<int> v4(v3);//拷贝构造

printVector(v4);

}

int main() {

test01();



system("pause");

return 0;

}




\*\*总结:\*\*vector的多种构造方式没有可比性,灵活使用即可



#### []( )3.2.3 vector赋值操作



**功能描述:**



*   给vector容器进行赋值



**函数原型:**



*   `vector& operator=(const vector &vec);`//重载等号操作符

    

*   `assign(beg, end);` //将\[beg, end)区间中的数据拷贝赋值给本身。

    

*   `assign(n, elem);` //将n个elem拷贝赋值给本身。

    



**示例:**



#include

void printVector(vector& v) {

for (vector<int>::iterator it = v.begin(); it != v.end(); it++) {

	cout << *it << " ";

}

cout << endl;

}

//赋值操作

void test01()

{

vector<int> v1; //无参构造

for (int i = 0; i < 10; i++)

{

	v1.push_back(i);

}

printVector(v1);



vector<int>v2;//等号传入

v2 = v1;

printVector(v2);



vector<int>v3;

v3.assign(v1.begin(), v1.end());

printVector(v3);



vector<int>v4;

v4.assign(10, 100);

printVector(v4);

}

int main() {

test01();



system("pause");

return 0;

}




总结: vector赋值方式比较简单,使用operator=,或者assign都可以



#### []( )3.2.4 vector容量和大小



**功能描述:**



*   对vector容器的容量和大小操作



**函数原型:**



*   `empty();` //判断容器是否为空

    

*   `capacity();` //容器的容量

    

*   `size();` //返回容器中元素的个数

    

*   `resize(int num);` //重新指定容器的长度为num,若容器变长,则以默认值填充新位置。

    

    ​ //如果容器变短,则末尾超出容器长度的元素被删除。

    

*   `resize(int num, elem);` //重新指定容器的长度为num,若容器变长,则以elem值填充新位置。

    

    ​ //如果容器变短,则末尾超出容器长度的元素被删除

    



**示例:**



#include

void printVector(vector& v) {

for (vector<int>::iterator it = v.begin(); it != v.end(); it++) {

	cout << *it << " ";

}

cout << endl;

}

void test01()

{

vector<int> v1;

for (int i = 0; i < 10; i++)

{

	v1.push_back(i);

}

printVector(v1);

if (v1.empty())

{

	cout << "v1为空" << endl;

}

else

{

	cout << "v1不为空" << endl;

	cout << "v1的容量 = " << v1.capacity() << endl;

	cout << "v1的大小 = " << v1.size() << endl;

}



//resize 重新指定大小 ,若指定的更大,默认用0填充新位置,

//可以利用重载版本替换默认填充

v1.resize(15,10);

printVector(v1);



//resize 重新指定大小 ,若指定的更小,超出部分元素被删除

v1.resize(5);

printVector(v1);

}

int main() {

test01();



system("pause");

return 0;

}




总结:



*   判断是否为空 — empty

*   返回元素个数 — size

*   返回容器容量 — capacity

*   重新指定大小 — resize



#### []( )3.2.5 vector插入和删除



**功能描述:**



*   对vector容器进行插入、删除操作



**函数原型:**



*   `push_back(ele);` //尾部插入元素ele

*   `pop_back();` //删除最后一个元素

*   `insert(const_iterator pos, ele);` //迭代器指向位置pos插入元素ele

*   `insert(const_iterator pos, int count,ele);`//迭代器指向位置pos插入count个元素ele

*   `erase(const_iterator pos);` //删除迭代器指向的元素

*   `erase(const_iterator start, const_iterator end);`//删除迭代器从start到end之间的元素

*   `clear();` //删除容器中所有元素



**示例:**



#include

void printVector(vector& v) {

for (vector<int>::iterator it = v.begin(); it != v.end(); it++) {

	cout << *it << " ";

}

cout << endl;

}

//插入和删除

void test01()

{

vector<int> v1;

//尾插

v1.push_back(10);

v1.push_back(20);

v1.push_back(30);

v1.push_back(40);

v1.push_back(50);

printVector(v1);

//尾删

v1.pop_back();

printVector(v1);

//插入

v1.insert(v1.begin(), 100);//在第一个位置前插入100

printVector(v1);



v1.insert(v1.begin(), 2, 1000);//在第一个位置前插入2个1000

printVector(v1);



//删除

v1.erase(v1.begin());//删除第一个位置的元素

printVector(v1);



//清空

v1.erase(v1.begin(), v1.end());//删除区间内的元素

v1.clear();//清空容器

printVector(v1);

}

int main() {

test01();



system("pause");

return 0;

}




总结:



*   尾插 — push\_back

*   尾删 — pop\_back

*   插入 — insert (位置迭代器)

*   删除 — erase (位置迭代器)

*   清空 — clear



#### []( )3.2.6 vector数据存取



**功能描述:**



*   对vector中的数据的存取操作



**函数原型:**



*   `at(int idx);` //返回索引idx所指的数据

*   `operator[];` //返回索引idx所指的数据

*   `front();` //返回容器中第一个数据元素

*   `back();` //返回容器中最后一个数据元素



**示例:**



#include

void test01()

{

vector<int>v1;

for (int i = 0; i < 10; i++){

	v1.push_back(i);//尾压元素

}



for (int i = 0; i < v1.size(); i++){

	cout << v1[i] << " ";//用[]访问

}

cout << endl;



for (int i = 0; i < v1.size(); i++){

	cout << v1.at(i) << " ";//用at()访问

}

cout << endl;



cout << "v1的第一个元素为: " << v1.front() << endl;

cout << "v1的最后一个元素为: " << v1.back() << endl;

}

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

.size(); i++){

	cout << v1[i] << " ";//用[]访问

}

cout << endl;



for (int i = 0; i < v1.size(); i++){

	cout << v1.at(i) << " ";//用at()访问

}

cout << endl;



cout << "v1的第一个元素为: " << v1.front() << endl;

cout << "v1的最后一个元素为: " << v1.back() << endl;

}

[外链图片转存中…(img-z78HLRVU-1715683182180)]
[外链图片转存中…(img-HOkHj7Q6-1715683182180)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值