栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

leetcode —— Two Sum

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

leetcode —— Two Sum

题目地址: 

https://leetcode-cn.com/problems/two-sum/

 

 Point1 :一维vector
vector &nums

:nums为一个引用,引用的内容是一个存放的整型数据的vector

创建一维vector:

vector nums;//不指定长度
vector nums(n); // 指定长度为n

添加元素:

nums.push_back(1);//直接从数组末端添加
nums[i] = 1;//直接赋值给第i个位置

删除元素:

nums.resize(nums.size-i); //直接将数组长度减小,某种方式上删掉了后面i个
nums.pop_back();//删掉最后一个元素

 遍历:

for(int i = 0; i < nums.size(); i++){    // 获得长度:nums.size()
    cout< 

 

 Point2 :i++ & ++i

1、赋值顺序不同

i++先赋值后加,++i先加后赋值。

2、效率不同

++i的效率比i++高。因为i++先赋值后运算,因此要多生成一个局部对象。

Demo Demo::operator++ ()
{  //前置++
    ++n;
    return *this;
}
Demo Demo::operator ++(int k)
{  //后置++
    Demo tmp(*this);  //记录修改前的对象
    n++;
    return tmp;  //返回修改前的对象
}

3、i++无法做左值,++i可以

左值是对应内存中有确定存储地址的对象的表达式的值,而右值是所有不是左值的表达式的值。一般来说,左值是可以放到赋值符号左边的变量。

但能否被赋值不是区分左值与右值的依据。比如,C++的const左值是不可赋值的;而作为临时对象的右值可能允许被赋值。左值与右值的根本区别在于是否允许取地址&运算符获得对应的内存地址。

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/604720.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号