【总结】OJ练习,进行的一些编程语言方面总结

1.STL vector只有四个构造函数

default (1)
explicit vector (const allocator_type& alloc = allocator_type());
fill (2)
explicit vector (size_type n, const value_type& val = value_type(),
                 const allocator_type& alloc = allocator_type());
range (3)
template <class InputIterator>
         vector (InputIterator first, InputIterator last,
                 const allocator_type& alloc = allocator_type());
copy (4)
vector (const vector& x);

第一个是默认构造函数,参数为内存分配器。

第二个是fill类型构造函数,参数为n个vector元素类型的val值。

第三个是范围的构造函数,参数为[first,last)的左闭右开范围区间。

第四个是复制构造函数,参数当然为const vector &了。

2.STL二维数组的构建。如 vector<vector<int> > vec;

应该只有如下方法:

vector a1;
a1.push_back(1);
a1.push_back(2);
a1.push_back(3);
vector a2;
a2.push_back(2);
a2.push_back(3);
a2.push_back(4);

vec.push_back(a1);
vec.push_back(a2);

所以,初始化一个二维数组是很麻烦的。好像用vector的话,没有更简便的方法了。最多就是,把a1和a2的初始化用范围构造函数,参数为已定义的数组名及数组名+长度

时间: 2024-11-15 00:39:11

【总结】OJ练习,进行的一些编程语言方面总结的相关文章

OJ提交题目中的语言选项里G++与C++的区别(转载)

原文链接:http://blog.polossk.com/201405/c-plus-plus-g-plus-plus G++? 首先更正一个概念,C++是一门计算机编程语言,G++不是语言,是一款编译器中编译C++程序的命令而已. 那么他们之间的区别是什么? 在提交题目中的语言选项里,G++和C++都代表编译的方式.准确地说,选择C++的话,意味着你将使用的是最标准的编译方式,也就是ANSI C++编译.如果你使用的是G++的话,意味着你将使用GNU项目中最平凡适用人群最多的编译器(其实也就是

基于Linux的OJ系统的设计与开发(一)

最近在研究基于linux的OJ系统,然后想自己写一系列文章记录自己这段时间的学习成果. 首先,从原理上讲,OJ功能实现并不难,最主要解决的是安全性问题.总结一下,而安全性方面问题主要是用户可能提交恶意不友好的代码.关于如何过滤这些不安全的代码,我从网上收集整理了许多资料,大体上思路如下: 先说错误的做法: 1.所有的字符串过滤都是不靠谱儿的,坑人坑自己,C语言强大的宏几乎没有绕不过的字符串过滤,而且误伤也是很常见的,比如,你在程序里要是不小心定义一个叫做fork的变量,那么你的程序别指望可以AC

OJ提交题目中的语言选项里G++与C++的区别(转)

G++? 首先更正一个概念,C++是一门计算机编程语言,G++不是语言,是一款编译器中编译C++程序的命令而已. 那么他们之间的区别是什么? 在提交题目中的语言选项里,G++和C++都代表编译的方式.准确地说,选择C++的话,意味着你将使用的是最标准的编译方式,也就是ANSI C++编译.如果你使用的是G++的话,意味着你将使用GNU项目中最平凡适用人群最多的编译器(其实也就是我们熟悉的Code::Blocks的自带的编译器,Windows环境里一般是MinGW下的gcc,Linux中的gcc和

本渣的OJ开发的笔记(1)

最近想挖坑搞个跑在linux上的OJ,查了很多资料,也读了很多大神的代码,自己有些感悟.于是把评测内核的部分功能写了出来,这里做个笔记备忘啦. 学校用的OJ是几年前的hustoj,只支持C/C++,Java和Pascal跑起来老是出现莫名奇妙的错误,感觉某学长没有搭好(╬ ̄皿 ̄).自己想搞的OJ以后应该能支持C/C++/Java/Pascal/C#/Scala/Python这些语言吧(期待ing),之前在网上看见一些比较牛的在线编译器,如 http://codepad.org/ 和 http:/

OJ提交题目中的语言选项里G++与C++的区别

根本差别: hduoj上,g++用的是mingw,c++用的是msvc:mingw 的 I/O 速度比较慢,这也是一些人用G++超时,而C++ AC的原因 差别一: 1.输出double类型时,如果采用G++提交,scanf采用%lf,prinf采用%f,否则会报错 2.使用GCC/G++的提醒: 对于64位整数, long long int 和 __int64 都是支持并且等价的.但是在读和写的时候只支持scanf("% I64d", ...)和printf("%I64d&

【C++】OJ提交题目中的语言选项里G++与C++的区别

G++? 首先更正一个概念,C++是一门计算机编程语言,G++不是语言,是一款编译器中编译C++程序的命令而已. 那么他们之间的区别是什么? 在提交题目中的语言选项里,G++和C++都代表编译的方式.准确地说,选择C++的话,意味着你将使用的是最标准的编译方式,也就是ANSI C++编译.如果你使用的是G++的话,意味着你将使用GNU项目中最平凡适用人群最多的编译器(其实也就是我们熟悉的Code::Blocks的自带的编译器,Windows环境里一般是MinGW下的gcc,Linux中的gcc和

计算机学科基础知识和主流编程语言相关内容的总结

这个仓库主要用来对计算机学科的基础理论知识和主流编程语言相关内容进行总结,每个目录对应一个大的方向. 主要内容 主要包含的计算机基础有以下几个大方向: DataBase DataStructure Linux_OS Network Algorithm Math 编程语言目前有: Python C++ 此外,还有几个目录: Coding:一些 C++ 的代码 OnlineJudge:一些 OJ 的解题代码 Offer:主要分享一些和找工作相关的内容 Others:一些无法归类,但是可能有用的东西

[西建大ACM协会]OJ平台如何使用

目录 [西建大ACM协会]OJ平台如何使用 0x00 前言 0x01 准备工作 0x02 注册账号 0x03 开始使用 [西建大ACM协会]OJ平台如何使用 0x00 前言 ?关于ACM比赛以及对应的练习对自己有什么好处,我不做多的解释,这次这篇文章只针对想要提升自己编程能力.但又苦于无法找到合适入门途径的新人. ?备注:本文涉及到的OJ平台需要能够访问外网才可访问. 0x01 准备工作 ?访问外网工具(防和谐,不多说,后续的操作中都需要它) ?浏览器(建议chrome,看不懂的题目就可以直接翻

LeetCode OJ - Sum Root to Leaf Numbers

这道题也很简单,只要把二叉树按照宽度优先的策略遍历一遍,就可以解决问题,采用递归方法越是简单. 下面是AC代码: 1 /** 2 * Sum Root to Leaf Numbers 3 * 采用递归的方法,宽度遍历 4 */ 5 int result=0; 6 public int sumNumbers(TreeNode root){ 7 8 bFSearch(root,0); 9 return result; 10 } 11 private void bFSearch(TreeNode ro