亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

C++ reset和assign區別

c++
小樊
82
2024-07-17 19:13:45
欄目: 編程語言

在C++中,reset和assign都是用于重新設置或重新賦值對象的方法,但是它們之間有一些區別。

  1. reset:reset方法通常用于將對象重新初始化為其默認狀態。對于智能指針,reset方法將釋放指向的對象,并將指針置為空。對于unique_ptr和shared_ptr,reset方法還可以接受一個新的對象指針作為參數,用于重置指針指向的對象。

示例:

std::shared_ptr<int> ptr(new int(10));
ptr.reset(); // 釋放指向的對象,并將指針置為空

std::unique_ptr<int> ptr(new int(10));
ptr.reset(new int(20)); // 釋放指向的對象,并將指針指向新的對象
  1. assign:assign方法通常用于重新分配對象的值。對于STL容器,assign方法用于用新的元素替換容器中的元素。對于字符串類,assign方法用于用新的字符串替換原有的字符串內容。

示例:

std::vector<int> vec1 = {1, 2, 3};
std::vector<int> vec2 = {4, 5};
vec1.assign(vec2.begin(), vec2.end()); // 用vec2中的元素替換vec1中的元素

std::string str = "hello";
str.assign("world"); // 用"world"替換原有的字符串內容

總的來說,reset主要用于重新初始化對象或釋放對象,而assign主要用于重新分配對象的值。

0
九龙县| 辽中县| 平乡县| 富民县| 阿荣旗| 鲁山县| 大英县| 大竹县| 玉树县| 日土县| 云南省| 毕节市| 潢川县| 镶黄旗| 乌海市| 隆子县| 新乡市| 乌拉特中旗| 偏关县| 舞钢市| 赞皇县| 郸城县| 玛纳斯县| 凭祥市| 乌拉特前旗| 高碑店市| 罗源县| 中卫市| 竹山县| 平凉市| 平遥县| 鹤山市| 读书| 湖南省| 红原县| 武安市| 鄂托克旗| 成都市| 乐安县| 政和县| 昆山市|