cpp

poj 1953 World Cup Noise

北城以北 提交于 2020-12-14 05:54:15
World Cup Noise Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 14753 Accepted: 7302 Description Background "KO-RE-A, KO-RE-A" shout 54.000 happy football fans after their team has reached the semifinals of the FIFA World Cup in their home country. But although their excitement is real, the Korean people are still very organized by nature. For example, they have organized huge trumpets (that sound like blowing a ship's horn) to support their team playing on the field. The fans want to keep the level of noise constant throughout the match. The trumpets are operated by compressed gas.

R语言的cpp扩展支持Rcpp模块介绍

女生的网名这么多〃 提交于 2020-04-07 05:51:51
概述 Rcpp包提供C++类方便C or C++代码与R软件包进行交互,使用R中提供的 .Call() 调用界面。 Rcpp提供R中的基础数据类型的C++类供访问。包作者可以保持R的数据结构而无需与C++进行不断的转换。同时,这些数据结构提供C++级别的存取。数据类型可以双向映射。可以从 R中把数据赋给C++, 返回数据从C++到R也完全一样。下面列出支持的数据类型。 Transfer from R to C++, and from C++ to R R 数据类型 (SEXP) 与C++对象是一致的,按照类的衍生关系。所有的R类型都支持 (vectors, functions, environment, etc ...) 并且每一种对对应到C++的类对象。例如, numeric vectors代表类Rcpp::NumericVector的实例, environments代表Rcpp::Environment, functions代表Rcpp::Function,等等... 相应的 C++库都提供Rcpp::wrap函数,该函数是一个模版函数负责把数据转换为SEXP。 这个机制让使用标准C++类型实现C++的逻辑变得非常直接,比如使用STL编程然后包装为SEXP返回到R中。内部的封装操作使用高级元编程技术,目前支持的数据类型包括:bool, int, double, size_t,

PTA甲级1008【Elevator】思路及代码(c/cpp)

≡放荡痞女 提交于 2020-03-09 15:29:02
题目描述 题意理解 给出一串乘电梯需求。电梯预设:从0th开始,每上一层需要6秒,下一层需要4秒,需求给出的stop停留5秒。 比较容易产生歧义的地方是,如果出现类似3 2 3 3这样的输入样例,两次三楼都需要停5秒还是只需要停留一次就可以。最后代码试了一下,是需要出现几次就停留几次的,不论是不是连着同一楼层有request。 代码及提交结果(c/cpp) c和cpp在这题上没什么区别,就是个头文件问题而已,没有用上cpp的函数。 # include <stdio.h> int main ( ) { int n ; scanf ( "%d" , & n ) ; int index = 0 , now , ans = 0 , i ; for ( i = 0 ; i < n ; i ++ ) { scanf ( "%d" , & now ) ; if ( now > index ) ans + = ( now - index ) * 6 ; if ( now < index ) ans + = ( index - now ) * 4 ; ans + = 5 ; index = now ; } printf ( "%d" , ans ) ; return 0 ; } index初始化为零代表电梯初始时刻,now输入需求,根据大小判断上升还是下降,每层stop停五秒

poj 1002 487-3279

陌路散爱 提交于 2020-03-02 07:44:56
487-3279 Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 226038 Accepted: 39379 Description 企业喜欢用容易被记住的电话号码。让电话号码容易被记住的一个办法是将它写成一个容易记住的单词或者短语。例如,你需要给滑铁卢大学打电话时,可以拨打 TUT-GLOP。有时,只将电话号码中部分数字拼写成单词。当你晚上回到酒店,可以通过拨打310-GINO来向Gino's订一份pizza。让电话 号码容易被记住的另一个办法是以一种好记的方式对号码的数字进行分组。通过拨打必胜客的“三个十”号码3-10-10-10,你可以从他们那里订 pizza。 电话号码的标准格式是七位十进制数,并在第三、第四位数字之间有一个连接符。电话拨号盘提供了从字母到数字的映射,映射关系如下: A, B, 和C 映射到 2 D, E, 和F 映射到 3 G, H, 和I 映射到 4 J, K, 和L 映射到 5 M, N, 和O 映射到 6 P, R, 和S 映射到 7 T, U, 和V 映射到 8 W, X, 和Y 映射到 9 Q和Z没有映射到任何数字,连字符不需要拨号,可以任意添加和删除。 TUT-GLOP的标准格式是888-4567,310-GINO的标准格式是310-4466,3-10-10

EclipseforC/CPP 之配合 doxygen + graphviz 生成HTML代码文档

雨燕双飞 提交于 2020-03-02 02:51:56
JAVA语言中的代码注释那是相当好的一个东西,尤其是使用了Eclipse之后,简直是程序员的福音。小弟前几天用了一下午的时间,经过在网上的查找以及我一点点的探索,终于搞定在windows平台下,使用 Eclipse for c/cpp + doxygen + graphviz 自动提示代码注释以及生成HTML格式的文档。 还不知道doxygen的同学,请自行百度/Google 声明:JDK以及mingw的安装和配置请自行解决,这里的测试以C语言为主 使用到的软件: jdk mingw eclipse for c/cpp doxygen eclox graphviz 一、安装doxygen、graphviz以及eclipse插件:eclox doxygen、graphviz的安装比较简单,就是典型的下一步,不再赘述。 然后就是在eclipse【实际上是 Eclipse IDE for C/CPP ,以下简称为 eclipse】中安装doxygen的插件 eclox了,它的下载地址 http://home.gna.org/eclox/ 至于 eclipse 安装插件的方法,这里推荐使用 link 安装方法,具体的作法不再多说 安装好之后,还要做一些设置: 1、window->preferences->doxygen 在右侧点击 Add,添加doxygen安装目录的bin目录

04、extern引用全局变量

旧巷老猫 提交于 2020-02-24 22:01:56
这里强调一点就是关extern的声明: extern在声明中最主要的作用就是告诉编译器别的文件引用了全局变量XXXX。 举例: 有一个工程名字叫 Project1。 Project1下面有两个.cpp源文件,分别为main.cpp和other.cpp other.cpp内容如下: 1 char g_char = ' A’; main.cpp内容如下: 1 #include<iostream> 2 #include<Windows.h> 3 4 using namespace std; 5 6 std::string g_str; 7 8 extern char g_char; // 告诉编译器我要引用g_char这个全局变量 9 int main(void) 10 { 11 cout << "g_char===>" << g_char << endl; 12 g_char = 'B'; 13 cout << "g_char===>" << g_char << endl; 14 system("pause"); 15 return 0; 16 } 输出结果: g_char===>A g_char===>B 来源: https://www.cnblogs.com/tito/p/12358659.html

Linux下gcc/g++、make和cmake的区别

邮差的信 提交于 2020-02-05 00:36:37
首先介绍一下GCC :GNU Compiler Collection(GNU 编译器集合),在为Linux开发应用程序时,绝大多数情况下使用的都是C语言,因此几乎每一位Linux程序员面临的首要问题都是如何灵活运用C编译器。目前 Linux下最常用的C语言编译器是GCC(GNU Compiler Collection),它是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和Object C等语言编写的程序。GCC不仅功能非常强大,结构也异常灵活。最值得称道的一点就是它可以通过不同的前端模块来支持各种语言,如Java、 Fortran、Pascal、Modula-3和Ada等。 gcc与g++区别: gcc 是GCC 中的GUNC Compiler(C 编译器) g++ 是GCC 中的GUN C++ Compiler(C++编译器) 更准确的说法是:gcc 调用了Ccompiler,而g++调用了C++ compiler gcc 和g++ 的主要区别 1. 对于 *.c 和*.cpp文件,gcc分别当做c和cpp文件编译(c和cpp的语法强度是不一样的); g++则统一当做cpp文件编译 2. 使用g++ 编译文件时, g++ 会自动链接标准库STL ,而gcc不会自动链接STL, 在用gcc 编译c++文件时,为了能够使用STL,需要加参数 –lstdc++

C++ emplace_back

烈酒焚心 提交于 2020-01-26 23:11:39
C++ emplace_back emplace_back 參考連結 emplace_back 在C++11之前,我們只有 std::vector::push_back ,因此我們得先創建一個temporary object,然後呼叫 push_back 把它放入(實際上是複製) vector 裡。 C++11引入了 std::vector::emplace_back ,它可以接受其元素的constructor的參數當作輸入,然後in-place地在容器所指定的位置上建創建物件。它讓我們可以免去temporary object,使語法更為簡潔: # include <iostream> # include <vector> class Rectangle { public : Rectangle ( int h , int w ) : height ( h ) , width ( w ) { area = height * width ; } ; int get_area ( ) { return area ; } private : int area ; int height ; int width ; } ; int main ( ) { std :: vector < Rectangle > rects ; rects . push_back ( Rectangle ( 10

cpp二进制与整数之间的转换的几种方式记录

戏子无情 提交于 2020-01-12 21:24:44
PS: 程序为cpp代码,最重要理解操作。 方法一: n进制方法,也可以解决转换为其他进制问题。 /*将整数转化为二进制的string 输出*/ string convert(int num) { string res = ""; if (num == 0) return "0"; int val = num; num = abs(num); while (num) { res.insert(0, to_string(num % 2)); num /= 2; } if (val < 0) res.insert(0, "-"); return res; }  方法二: 使用容器转换 /*使用vector进行存储*/ vector<int> convert(int n) { int temp; temp = n; vector<int> res; while (temp !=0) { res.push_back(temp % 2); temp = temp >> 1; } return res; } 方法三: 递归输出转换二进制 /*递归转换二进制*/ void convert(int n) { int a; a = n % 2; n = n >> 1; if (n == 0) return; else convert(n); cout << a; // 01逐个输出 }    方法四