vector.push_back() 和 Vector[index] 之类的插入元素有什么区别?
what is the difference between vector.push_back() and inserting element like Vector[index]?
class Solution {
public:
vector<int> getConcatenation(vector<int>& nums) {
int n=nums.size();
vector<int> ans(2*n);
for(int i=0;i<2*n;i++)
{
if(i<n)
{
ans.push_back(nums[i]);
}
else
{
ans.push_back(nums[i-n]);
}
}
return ans;
}
};
上面的代码没有给出适当的答案。
虽然下面的代码工作正常。
class Solution {
public:
vector<int> getConcatenation(vector<int>& nums) {
int n=nums.size();
vector<int> ans(2*n);
for(int i=0;i<2*n;i++)
{
if(i<n)
{
ans[i]=nums[i];
}
else
{
ans[i]=nums[i-n];
}
}
return ans;
}
};
当你创建向量时你已经指定了一个大小(通常不是用向量完成)所以你的向量已经填充了已设置为 0 的整数。所以当你使用 ans[i] = nums[i];
时你只是在编辑向量中已存在的元素之一。
通常当你创建一个向量时,你通过vector<int> ans;
或vector<int>* ans = new vector<int>();
(如果你想在堆上创建它)将它创建为一个空向量,然后向它添加一个新元素使用 ans.push_back(value);
会将元素添加到向量的 back/end。
class Solution {
public:
vector<int> getConcatenation(vector<int>& nums) {
int n=nums.size();
vector<int> ans(2*n);
for(int i=0;i<2*n;i++)
{
if(i<n)
{
ans.push_back(nums[i]);
}
else
{
ans.push_back(nums[i-n]);
}
}
return ans;
}
};
上面的代码没有给出适当的答案。
虽然下面的代码工作正常。
class Solution {
public:
vector<int> getConcatenation(vector<int>& nums) {
int n=nums.size();
vector<int> ans(2*n);
for(int i=0;i<2*n;i++)
{
if(i<n)
{
ans[i]=nums[i];
}
else
{
ans[i]=nums[i-n];
}
}
return ans;
}
};
当你创建向量时你已经指定了一个大小(通常不是用向量完成)所以你的向量已经填充了已设置为 0 的整数。所以当你使用 ans[i] = nums[i];
时你只是在编辑向量中已存在的元素之一。
通常当你创建一个向量时,你通过vector<int> ans;
或vector<int>* ans = new vector<int>();
(如果你想在堆上创建它)将它创建为一个空向量,然后向它添加一个新元素使用 ans.push_back(value);
会将元素添加到向量的 back/end。