- 博客(6)
- 收藏
- 关注
原创 C++中队列如何传递引用类型
大家有没有遇到这样一个问题,自己想让一个对象放到stl的容器里,然后取出来的时候还是这个对象,但是却发现C++的容器类型不能设为引用。最近在设计一个排队的逻辑时,想把每个对象都放到队列里来模拟排队,但是发现进去的和出来的却不是一个人…然后偶然发现了浅拷贝的作用。首先给大家放段代码,证明STL某些容器不是传的引用,而且是浅拷贝:#include <iostream>#include <queue>#include <stack>#include <vect
2021-12-17 21:03:40 1406 1
原创 重复定义的解决方法(头文件与源文件为什么要分开的解释)
在项目开发中,头文件与源文件分开的具体理解: 例如下面一段程序:// head1.h中#ifndef _HEAD1_H#define _HEAD1_Hint x#endif// head1.cpp中// main.cpp中#include "head1.h"int main() { x = 1; return 0;}如果命令行输入 : g++ -c *.cpp会出现 multiple definition of `x’即重定义, 这是为什么呢,不是已经有
2021-12-15 19:29:15 2787
原创 C++中初始化列表无法初始化父类成员属性的解释
首先解释一下初始化列表的常识,即初始化列表的初始化顺序只与定义顺序有关,与列表中的顺序无关。举个栗子:#include<iostream>using namespace std;int t = 0;class A {public : int x; A() { cout << "A default constructor" << endl; } A(int _x) : x(_x) { ;
2021-12-13 00:43:07 1194
原创 食物链 (利用并查集的两种解决方法)
食物链是并查集中的一种经典题, 第一次看《挑战程序设计竞赛》上懵懵懂懂, 最近又看见了发现还是一脸懵逼。首先题目如下动物王国中有三类动物 A,B,C,这三类动物的食物链构成了有趣的环形。A 吃 B,B 吃 C,C 吃 A。现有 N 个动物,以 1∼N 编号。每个动物都是 A,B,C 中的一种,但是我们并不知道它到底是哪一种。有人用两种说法对这 N 个动物所构成的食物链关系进行描述:第一种说法是 1 X Y,表示 X 和 Y 是同类。第二种说法是 2 X Y,表示 X 吃 Y。.
2021-11-19 15:16:01 1796
原创 离散化的一般操作
离散化原理离散化看过好几次, 但是过不来多久就忘了, 所以记录一下。原理当题目的数据量较数据范围要小的时候采用离散化思想达到优化。比如在数轴上有这些点: 1 000 000, 10, -1000, 1000, 20 000, 1030 000.这些点的个数很少, 但是范围却非常大, 如果要求某个区间上的和开的数组会非常大,所以先对数据进行离散化处理, 离散化其实就是做一个映射, 把较大数映射成较小数, 然后通过二分来找到这个映射值, 如果用函数表示, 就是ind = f(val) va
2021-11-16 15:40:31 1132
原创 矩阵螺旋输出c/c++
最近刷题刷到一个以前做过的题: 矩阵螺旋输出.当时认为自己刚学c不久就没做那个题(主要是当时试了几次没有成功), 然后今天在学习c++的时候又遇到这个题了, 这当然不能放过了。我记得上次遇到这题是直接去复制了别人的代码提交的, 但是那份代码很长, 要把矩阵的行列分不同的情况, 我觉得非常的麻烦, 然后我就想到用4个变量分别代表数组的上下左右的边界(南北东西), 然后在用一个p来遍历整个数组。下面是我自己画的草图 , 一个行6列9的矩阵。结合代码一起看应该会清晰一些。#include <iost
2021-03-08 09:36:35 516 3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人