首页 > 其他分享 >练习10.7 代码改错

练习10.7 代码改错

时间:2023-07-23 14:33:57浏览次数:31  
标签:10 元素 10.7 练习 back 改错 lst vector vec

下面代码是否有错,怎么改

1

vector<int> vec;
list<int> lst;
int i;
while (cin >> i)
	lst.push_back(i);
copy(lst.cbegin(), lst.cend(), vec.begin());

算法总是通过迭代器操作容器,不能直接向容器添加删除元素,无法改变元素的大小。对于copy算法,目标序列至少要和源序列有一样多的元素,而这里vector是空的。如果要改变容器的大小,需要用叫做插入器的迭代器。
改成下面

 int main(int argc, char* argv[])
{
    list<int> lst {1, 2, 3, 4, 5};
    vector<int> vec;
	// back_insert
    copy(lst.begin(), lst.end(), back_inserter(vec));

    for (const auto& v : vec)
    {
        cout << v << endl;
    }
}

2

    vector<int> vec;
    vec.reserve(10);
    fill_n(vec.begin(), 10, 0);

虽然已经为vector分配了足够的空间,但是泛型算法对容器的要求并不是要足够的空间,而是有足够的元素。此时vector为空,没有任何元素,而算法不具备向容器添加元素的能力,这里依然使用back_insert让fill_n有能力向vec添加元素。

    vector<int> vec;
    vec.reserve(10);
    fill_n(back_inserter(vec), 10, 100);

    for (size_t i = 0; i < 10; i++)
    {
        cout << vec[i] << endl;
    }

标签:10,元素,10.7,练习,back,改错,lst,vector,vec
From: https://www.cnblogs.com/yuzuki/p/17574918.html

相关文章

  • 数据结构练习笔记——顺序栈的基本操作
    顺序栈的基本操作【问题描述】按照要求完成顺序栈的设计【输入形式】无【输出形式】2019181716151413121110987654321#include<iostream>usingnamespacestd;#include<stdlib.h>#include<stdio.h>#defineSTACKSIZE10#defineINCRE2......
  • c语言_练习实例100
     题1:1.有 1、2、3、4 四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?#include<stdio.h>intmain(){for(inti=1;i<5;i++){//取百位for(intj=1;j<5;j++){//取十位for(intk=1;k<5;k++){//取个位if(i!=j&&j!......
  • 周六 jdbc练习 商品品牌数据增删改查
    先把练习用的表建立出来droptableifexiststb_brand;--创建tb_brand表createtabletb_brand(--id主键idintprimarykeyauto_increment,--品牌名称brand_namevarchar(20),--企业名称company_namevarchar(20),--......
  • 2023/7/22(2)宽搜练习马走日
     #include<bits/stdc++.h>usingnamespacestd;intqwq[12][2]={{1,2},{1,-2},{-1,2},{-1,-2},{-2,-1},{-2,1},{2,1},{2,-1},{2,2},{-2,-2},{2,-2},{-2,2}};intax,ay,bx,by;boolmp[105][105];structnode{intx,y,step;node(){}node(constint......
  • redis练习
    redis相关练习内容环境搭建缓存短信验证码缓存菜品信息SpringCache缓存套餐数据前言1).当前系统存在的问题之前我们已经实现了移动端菜品展示、点餐、购物车、下单等功能,但是由于移动端是面向所有的消费者的,请求压力相对比较大,而我们当前所有的数据查询都是从数据库......
  • Mybatis练习CRUD
    namespacenamespcae中的包名要和mapper接口中的方法名一致-id:就是对应的namespace中的方法名-resultType:Sql语法执行的返回值-parameter:  参数类型1、select(选择、查询语句)1、编写接口List<User>getUserList();2、编写mapper中sql语句<selectid="getUserLi......
  • 20230720练习总结
    CF1523HHoppingAroundtheArray写在前面:毒瘤翻译!!!原题面有一句"Agrasshoppercanhoparoundthesellsaccordingtothefollowingrule"翻译过来就是不能删去起点和终点,翻译题面没有这句话!!!调了一个下午,答案一直比标答小!!!先忽略询问的终点,那么从\(i\)起跳,一定是跳到\([......
  • PHP代码练习Demo02
    <!DOCTYPEhtml><html><body><?phpecho"<h2>PHPisfun!</h2>";echo"helloworld"; echo"I'mabouttolearnPHP!<br>";echo"This","string","was&qu......
  • 字符串练习
    P4081[USACO17DEC]StandingOutfromtheHerdP只有一个串怎么做?那就是P2408不同子串个数。跑一遍后缀排序,按排序结果遍历后缀,考虑每个后缀会产生多少新串。为保证每个不同的串只被记录一次,只考虑去掉它与上一个串的重复部分,即为\(height_i\)。多个串类似,在串中加上......
  • 数据结构练习笔记——链式栈的设计与实现
    链式栈的设计与实现【问题描述】采用链式存储结构实现栈的基本操作,并借助栈实现进制转换。【输入形式】整数【输出形式】二进制数【样例输入】10【样例输出】1010#include<iostream>usingnamespacestd;#include<stdlib.h>structsnode{intdata;sn......