c++
风景不在对岸wj
这个作者很懒,什么都没留下…
展开
-
C++ 给vector去重的三种方法
注:转载仅作为笔记使用,如有侵权,请联系。原文地址:https://blog.csdn.net/xiangxianghehe/article/details/90637998第一正种方法是简单的利用set的特性,这部分代码比较简单,直接上code:#include <iostream>#include <vector>#include <set>using namespace std;int main(){ int myints[] =转载 2020-11-25 15:13:49 · 3860 阅读 · 1 评论 -
cmake基本用法
cmake基本用法我们编写一个C++单例类,使用cmake构建项目,主要是为了记录一下cmake的基本用法。首先项目文件夹为DemoProject,我们创建一个main.cpp作为我们的主文件,创建一个子文件夹Singleton,在Singleton中创建Singleton.h和Singleton.cpp作为我们的单例类。代码如下,很简单,就是获取一个单例然后调用它的函数:main.cpp...转载 2020-04-03 10:31:32 · 455 阅读 · 0 评论 -
vector length_error
reserve length error 'std::length_error' what(): vector::_M_fill_insert原因就是vector 预留长度(resize()函数的参数)不对。例如:c++参考文档中的例子。// length_error example#include <iostream> // std::cerr...原创 2020-01-08 14:28:56 · 3430 阅读 · 0 评论 -
(文件)输出不使用科学技术法
c++输出的数字太大,自动使用科学计数法输出结果,即使是整数,也会只有6位有效数字例如:精度不够,计数应该是15574393。因此需要改为平常的十进制输出。1.输出到显示器cout.setf(ios::fixed,ios::floatfield);//使用一般输出cout.precision(2);//保留小数点后2位。默认是6位。2.文件输出结果ofstream ...原创 2019-12-17 15:16:03 · 916 阅读 · 0 评论 -
比较fscanf 和getline读取文件效率
#include <iostream>#include <fstream>#include <vector>#include <string>#include <ctime>#include<cstring>using namespace std;class data{public: int sr...原创 2019-12-13 22:10:58 · 962 阅读 · 0 评论 -
c++ 内联函数(一看就懂)
1.内联函数在C++中我们通常定义以下函数来求两个整数的最大值:int max(int a, int b){ return a > b ? a : b;}1 2 3 4为这么一个小的操作定义一个函数的好处有:① 阅读和理解函数 max 的调用,要比读一条等价的条件表达式并解释它的含义要容易得多② 如果需要做任何修改,修改函数要比找出并修改每一处等价表...转载 2019-12-13 17:04:47 · 484 阅读 · 0 评论 -
C++实现统计代码运行时间计时器的简单实例
一、前言 这里记下从网上找到的一些自己比较常用的C++计时代码二、Linux下精确至毫秒? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 2...转载 2019-12-11 14:06:55 · 385 阅读 · 0 评论 -
Linux/Unix 环境下实现精确计算程序运行的时间
写程序时,程序的运行效率很重要,其往往是评价程序优劣性的直接标准。程序运行效率的最简单方法就是计算程序的运行时间。为了提高程序效率,使用适当的方法对程序的各个部分进行运行时间的计算是很有必要的。在 Linux/Unix 环境下,计算 C 程序运行时间可以通过以下三个函数来实现:clock()、time()、gettimeofday()。clock() 函数clock()函数是 ANSI...转载 2019-12-11 11:36:22 · 617 阅读 · 0 评论 -
OpenMp多线程编程计时问题
在做矩阵乘法并行化测试的时候,在利用<time.h>的clock()计时时出现了一点问题。首先看串行的程序://matrix_cpu.c#include<stdio.h>#include<stdlib.h>#include<time.h>#defineNUM2048voidmatrixMul(float*A,f...转载 2019-12-11 11:25:26 · 1447 阅读 · 0 评论 -
Linux下clock计时函数学习
平时在Linux和Winows下都有编码的时候,移植代码的时候免不了发现一些问题。1. 你到底准不准?关于clock()计时函数首先是一段简单的测试代码,功能为测试从文本文件读取数据并赋值给向量最后打印输出的运行时间。int main(int argc, char **argv){ clock_t t1=clock();ifstream in("data.txt");v...转载 2019-12-11 10:52:48 · 1161 阅读 · 0 评论 -
c++四舍五入函数,向上取整,向下取整函数
对含有小数点的数进行四舍五入是比较普遍的一种需求。在C++中也有类似的取整函数。在C++的头文件中有floor()和ceil()函数。在STL中还有round()函数。这三个函数的作用如下:函数名称 函数说明 2.1 2.9 -2.1 -2.9Floor() 不大于自变量的最大整数 2 2 -3 -3Ceil() 不小于自变量的最大整数 3 3 -2 -2Round() 四舍五入到最邻近的...转载 2019-12-05 19:45:31 · 3911 阅读 · 0 评论 -
c++ 结构体和vector进行lower_bound和upper_bound
总述:介绍结构体数组和包含结构体的vector怎么样使用lower_bound进行二分查找,upper_bound同理。前提:lower_bound:返回数组中第一个大于等于该元素的下标,int aa = lower_bound(array,array+arrayLen,num) - array;upper_bound:返回数组中第一个大于该元素的下标:int aa = upper_b...转载 2019-12-03 18:45:51 · 3080 阅读 · 0 评论 -
bash脚本运行C++程序
一直想用命令来运行程序,不用手动重复输入。今天学点皮毛,能跑程序。现在总结一下。第一个shell脚本使用vi/vim 创建一个文件 test.sh (扩展名为sh,表示shell.)输入代码#!bin/bashcho "Hello World!"#!告诉系统脚本需要用什么解释器来执行,即使用哪一种shell.echo 命令用于向窗口输出文件。运行Shell 脚本的方法1.作为可...原创 2019-11-28 13:52:58 · 2934 阅读 · 0 评论 -
【C++】c++ 11中的随机数 ——random
c++ 中的随机数 在 C++ 程序中,在新标准出现之前,C 和 C++ 都依赖一个简单的 C 库函数 rand 来生成随机数,但是,这个函数生成的是均匀分布的伪随机数,每个随机数的范围在 0 和一个系统相关的最大值(至少为 32767)之间。 rand 函数有一些问题:即使不是大多数,也有很多程序需要不通范围的随机数。一些应用需要随机浮点数。一些程序需要非均匀分布的随机数。而在编写程序...转载 2019-11-27 21:03:42 · 1016 阅读 · 0 评论 -
C/C++时间函数的使用
一、获取日历时间time_t是定义在time.h中的一个类型,表示一个日历时间,也就是从1970年1月1日0时0分0秒到此时的秒数,原型是:typedef long time_t;/* time value */可以看出time_t其实是一个长整型,由于长整型能表示的数值有限,因此它能表示的最迟时间是2038年1月18日19时14分07秒。函数time可以获取当前日历时...转载 2019-11-19 19:34:35 · 311 阅读 · 0 评论 -
c/c++ 结构体传参问题
c/c++的结构体传参可以有三种方式: 1、传递结构体变量,值传递 2、传递结构体指针,地址传递 3、传递结构体成员,可是值传递也可以是地址传递根据代码示例:1、传递结构体变量 1 #include<iostream> 2 #define COMMANDLENGTH 100 3 using std::cout; 4 using std:...转载 2019-11-11 15:35:50 · 2801 阅读 · 0 评论 -
set容器插入自定义类型 排序
背景做实验的时候发现图网络数据边不是按照生成时间排序的因此本文背景就是讲网络数据的边按照时间排序。数据格式:src dest time想到使用set自动排序。因此写了程序第一次预处理定义边类和排序规则class Edge{public: Edge(int src,int dest,int weight){ this->src=src; this->dest...原创 2019-10-24 17:06:23 · 936 阅读 · 0 评论 -
C++中map和set的使用与区别
setset的数据结构set的操作函数erasefindcount重载操作符multisetmapmap的数据结构map的构造函数map的操作函数erasecleanfind重载运算符其他操作函数multimap)setset是一种关联式容器,其特性如下:set以RBTree作为底层容器所得元素的只有key没有value,value就是key不允许出现键值重复所有的元素都会被自动排...转载 2019-10-24 10:03:15 · 1594 阅读 · 0 评论 -
linux ulimit设置
ulimit用于shell启动进程所占用的资源.2,类别:shell内建命令3,语法格式:ulimit [-acdfHlmnpsStvw] [size]4,参数介绍:-H 设置硬件资源限制.-S 设置软件资源限制.-a 显示当前所有的资源限制.-c size:设置core文件的最大值.单位:blocks-d size:设置数据段的最大值.单位:kbytes-f size:设置...转载 2019-10-23 08:21:28 · 893 阅读 · 0 评论 -
STL学习笔记-vector容器(动态数组)
简介:vector是将元素置于一个动态数组中进行管理的容器vector可以随机存取元素,支持索引值直接存取,用[]或者at()方法vector下尾部添加或者删除元素非常快,但在中间或头部插入或者删除元素比较耗时头文件:#include<vector>vector基本操作:vector<int> v;v.push_back(1); // 从尾部插入元素i...转载 2019-10-22 16:43:15 · 172 阅读 · 0 评论 -
如何通过迭代器来或得对应元素的下标
首先介绍一个函数:distance,它返回的是两个迭代器之间的距离。使用这个函数,就能完成迭代器与下标之间的转换:下标 = 当前迭代器位置-容器头部。看一个例子就明白了:#include<iostream>#include<list>usingnamespacestd;intmain(){list<int&...转载 2019-10-22 09:20:28 · 2598 阅读 · 0 评论 -
C++ STL:unordered_map 自定义键值类型
本文目录1. unordered_map的定义2. 问题分析3. 定义方法3.1 方法1:std::function<>3.2 方法2:重载operator()的类3.3 方法3:模板定制4. 额外案例:等比函数的函数对象5. 参考文献1. unordered_map的定义下面是unordered_map的官方定义。template<class Key...转载 2019-10-20 16:36:28 · 1917 阅读 · 0 评论 -
C++常见问题: 字符串分割函数 split(自己编写)
C++标准库里面没有字符分割函数split ,这可太不方便了,我已经遇到>3次如何对字符串快速分割这个问题了。列几个常用方法以备不时之需。方法一:利用STL自己实现split 函数(常用,简单,直观)原型:vector<string>split(const string &s,const string &seperator);输入一个字符...转载 2019-10-17 19:31:52 · 418 阅读 · 0 评论 -
strtok()函数详解!
strtok()函数详解!1.定义分解字符串为一组字符串。s为要分解的字符,delim为分隔符字符(如果传入字符串,则传入的字符串中每个字符均为分割符)。首次调用时,s指向要分解的字符串,之后再次调用要把s设成NULL。在头文件#include<string.h>中。2.原型char *strtok(char s[], const char *delim);3.说明(1)当...转载 2019-10-17 15:07:37 · 544 阅读 · 0 评论 -
cout.write()函数
除了使用预定义的插入符进行屏幕输出,cout<<“ ”还可以使用write函数:显示器输出一个字符串函数,使用格式如下cout.write(const char * str, int n)其中,str是一个用来存放字符串的字符指针或字符数组名,也可以 用一个字符串常量。 n指定输出的字符个数。s="hello, world!"cout.write(s,st...原创 2019-10-17 10:10:54 · 1255 阅读 · 0 评论 -
C、C++一次将整个文件读入内存
@1.问题描述:C和C++的初学者经常采用一行一行读入文件的办法对文件数据进行处理。但是经常会有一些情况需要将一个文件整体一次读入内存处理。而C和C++库中并没有提供直接一次读入文件全部数据的函数。@2.解决方法:目前给出C和C++的解决方案,下面两个程序只是用于演示,不过这些代码已经很容易改写成想要的函数了。解决这个问题的思路是:...转载 2019-10-17 08:53:13 · 1058 阅读 · 0 评论 -
c++ fstream + string 处理大数据(与c 的fread)
一:起因(1)之前处理文本数据时,各种清洗数据用的都是java的File,FileReader/FileWriter,BufferedReader/BufferedWriter等类,详见java读写文件(2)应用java的原因是java里面的map非常灵活,eclipse编译器更是给力,而且ctrl 可以追踪函数 等,详见java map的排序(3)应用java的另一个原因是java里面的...转载 2019-10-17 08:41:53 · 514 阅读 · 0 评论 -
getline函数读文件
ifstream in("example.txt"); //ofstream out("pre-sx0.01.txt"); char buf[100]; const char* d=" "; while (in.getline(buf,100)) // { cout<<buf[0]<<" "<<buf[2]<<" "<<...原创 2019-10-16 21:26:02 · 639 阅读 · 0 评论 -
探寻C++最快的读取文件的方案
在竞赛中,遇到大数据时,往往读文件成了程序运行速度的瓶颈,需要更快的读取方式。相信几乎所有的C++学习者都在cin机器缓慢的速度上栽过跟头,于是从此以后发誓不用cin读数据。还有人说Pascal的read语句的速度是C/C++中scanf比不上的,C++选手只能干着急。难道C++真的低Pascal一等吗?答案是不言而喻的。一个进阶的方法是把数据一下子读进来,然后再转化字符串,这种方法传说中很...转载 2019-10-16 11:36:00 · 859 阅读 · 0 评论 -
vs上C/C++并行计算#pragma omp
在一个vs内的工程进行并行计算,首先先修改属性内的C/C++ — 语言—OpenMP:是。头文件不一定需要#include <omp.h>。举例常见的几个用法section:#pragma omp parallel sections//告诉编译器有几个部分需要使用并行算法 {#pragma omp section//第一块并行部分 {//}#pragma...转载 2019-10-16 10:55:10 · 2465 阅读 · 0 评论 -
C++ eof()函数相关应用技巧分享
C++编程语言中的很多功能在我们的实际应用中起着非常大的作用。比如在对文件文本的操作上,就可以用多种方式来实现。在这里我们介绍的C++ eof()函数就是其中一个比较常用的基本函数。在使用C/C++读文件的时候,一定都使用过C++ eof()函数来判断文件是否为空或者是否读到文件结尾了,也会在使用这个函数的过程中遇到一些问题,如不能准确的判断是否为空或者是否到了文件尾,以至于有些人可能还会怀疑...转载 2019-10-15 20:00:33 · 1345 阅读 · 0 评论 -
VS 2010错误提醒: 必需属性“VSInstallDir”缺失或为空 以及 error MSB8008
VS 2010 2种错误提醒:1.无法启动调试器,必须属性"VSInstallDir"缺失或为空2. error MSB8008: 指定的平台工具集(v142)未安装或无效。请确保选择受支持的 PlatformToolset 值。以上两种问题的原因是:vs2010的平台工具集需要在v100下用的。解决方法:右键点击项目,选择属性,配置属性->常规。如下图所示,改为v1...原创 2019-10-12 16:42:06 · 3274 阅读 · 1 评论 -
C++ o matching function for call to 'transform...错误
C++错误 transform转载 2015-09-16 19:21:55 · 712 阅读 · 0 评论 -
.h 文件出错 error C2501: 'list' : missing storage-class or type specifiers
graph.h头文件#include<iostream>#include<list>在图邻接表表示时,使用的c++ 标准库的listlist<int>* HeadNodes;使用主函数引用#include."graph.h"时,提示出错上面显示行 error C2501: 'list' : missing storage-clas...原创 2019-09-28 16:53:34 · 2201 阅读 · 0 评论 -
vector中指针问题
根据搜索内容总结如下:vector ::iterator iter=spvec.begin();// string* 代表什么意思?while(iter!=spvec.end()){coute()dl;//**代表什么意思?iter++;}vector ::iterator iter=spvec.begin();//上面这句定义了一个迭代器,并指向了原创 2016-08-27 21:37:12 · 1895 阅读 · 0 评论 -
vector 基本用法详解
vector是STL中最常见的容器,它是一种顺序容器,支持随机访问。 vector是一块连续分配的内存,从数据安排的角度来讲,和数组极其相似, 不同的地方就是:数组是静态分配空间,一旦分配了空间的大小,就不可再改变了; 而vector是动态分配空间,随着元素的不断插入,它会按照自身的一套机制不断扩充自身的容量。vector的扩充机制:按照容器现在容量的一倍进行增长。 vector容器分配的转载 2016-08-27 21:31:03 · 4963 阅读 · 0 评论 -
C/C++中各种类型int、long、double、char表示范围(最大最小值)
[cpp] view plain copy#include #include #include using namespace std; int main() { cout "type: \t\t" "************size**************" cout "bool: \t\t" "转载 2016-04-27 20:45:09 · 1260 阅读 · 0 评论 -
c++函数参数类型-引用
在编写个人函数的时候,你将会受到C++中的一条基本的原则的限制:在默认的情况下,变量只能以值传递的方式传递给函数。这句话的意思是:被传递到函数的只是变量的值,永远不是变量的本身。例如:[cpp] view plain copy print?void changeVar(int myVar,int newValue) {转载 2016-03-26 11:47:38 · 1224 阅读 · 0 评论 -
srand和rand的用法
srand((unsigned)time(NULL))是初始化随机函数种子:1、是拿当前系统时间作为种子,由于时间是变化的,种子变化,可以产生不相同的随机数。计算机中的随机数实际上都不是真正的随机数,如果两次给的种子一样,是会生成同样的随机序列的。 所以,一般都会以当前的时间作为种子来生成随机数,这样更加的随机。 2、使用时,参数可以是unsigned型的任意数据,比如srand转载 2016-03-10 21:15:25 · 853 阅读 · 0 评论 -
C++文件操作详解(ifstream、ofstream、fstream)
C++ 通过以下几个类支持文件的输入输出:ofstream: 写操作(输出)的文件类 (由ostream引申而来) ifstream: 读操作(输入)的文件类(由istream引申而来) fstream: 可同时读写操作的文件类 (由iostream引申而来) 打开文件(Open a file)对这些类的一个对象所做的第一个操作通常就是将它和一个真正的文件联系起来,转载 2016-03-07 15:17:44 · 371 阅读 · 0 评论