c++中的几个小问题!

broadarms 2004-12-20 09:20:46
)less<string> 是什么意思?

2)register int 是什么意思?

3)cerr跟cout有什么区别?

4)exit(-2) 是什么意思? -2?

5)vector<pair<short,short>> loc;
short a=0, b=0;
loc.push_back(a,b);

编译器报错:no matching function for call...
candidates are: std::vector<_Tp, _Alloc>::push_back(const _Tp&)
...全文
140 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
fatalerror99 2004-12-20
  • 打赏
  • 举报
回复
1)less<string> 是什么意思?

less 是一个二元谓词,作用是比较两个序列,寻找某的序列中的第一个不小于在另一个序列里的对应元素的元素。
在 STL <functional> 中定义如下:
template<typename T>struct less : public binary_function<T, T, bool>
{
bool operator() (const T& x, const T& y) const { return x<y; }
}
使用例子如下:
pair< vector<string>::iterator, list<string>::iterator > pl =
misnatch ( vi.begin(), vi.end(), li.begin, less<string>() );

2)register int 是什么意思?

定义一个寄存器变量,类型为 int。

3)cerr 跟 cout 有什么区别?

cerr 为标准错误输出,因为 cout 可以重定向,如果 cout 重定向到非实时交互对象(比如是一个 log 文件)的话,错误信息如果用 cout 输出的话,也会重定向到 log 文件,就无法及时发现了,cerr 可以保证 cout 重定向后,错误信息还是输出到标准控制台,以及时发现。

4)exit(-2) 是什么意思? -2?

程序退出,向操作系统返回 -2,相当于 main() 的返回值,程序正常结束一般返回 0,-2
一般代表出现问题,如果有后台检测程序的话,会接收这个值,并做相应处理。

5)vector<pair<short,short>> loc;
short a=0, b=0;
loc.push_back(a,b);

编译器报错:no matching function for call...
candidates are: std::vector<_Tp, _Alloc>::push_back(const _Tp&)


试试这样:

#include <vector>

using namespace std;

int main()
{
vector< pair<short, short> > loc; // 注意空格
short a = 0, b = 0;
loc.push_back ( pair<short, short>(a, b) );
}
starwalker 2004-12-20
  • 打赏
  • 举报
回复
2)register int 是什么意思?
定义一个寄存器变量,该变量直接在CPU寄存器中。
其特点是速度快,一般用作循环控制变量等。
但是编译器不保证该变量能在寄存器中,有些编译器干脆直接忽略register关键字。

3)cerr跟cout有什么区别?
cerr直接输出到设备,无缓冲;
cout输出到设备,有缓冲;

4)exit(-2) 是什么意思? -2?
退出程序的返回值,可以用dos环境变量errorlevel来取得。
avalonBBS 2004-12-20
  • 打赏
  • 举报
回复
1)less<string>;
不太清楚的说,我一般在如:map<string,int,less<string> > a;表示升序键
其它的就不知道了~~
5)vector<pair<short,short>> loc;
short a=0, b=0;
loc.push_back(a,b);/////应该为loc.push_back( make_pair(a,b) );
小兽 2004-12-20
  • 打赏
  • 举报
回复
2)register int 是什么意思?

声明类型为int的寄存器变量(一般用来声明使用很频繁的变量,以提高速度)

3)cerr跟cout有什么区别?

前者是错误输出,类似与java中的System.err 后者是格式输出·

4)exit(-2) 是什么意思? -2?

退出值,程序中加入后,会在这里退出;并返回-2。

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧