Questions tagged «std»

C ++标准库及其名称空间。与[c ++]结合使用。



5
“ STL”和“ C ++标准库”有什么区别?
有人引起了我的注意,这篇文章声称(我的意思是) STL术语被误用来指代整个C ++标准库,而不是指从SGI STL中获得的部分。 (...)它指的是“ STL”,尽管实际上仍然很少有人使用STL(这是SGI设计的)。 C ++标准库的某些部分是基于STL的,因此很多人(包括数位作者和臭名昭著的cplusplus.com)仍然将这些部分称为“ STL”。但是,这是不准确的。实际上,C ++标准从不提及“ STL”,并且两者之间存在内容差异。 (...)“ STL”很少用于指代基于SGI STL的stdlib的位。人们认为这是整个标准库。它被放在简历上。这是一种误导。 我几乎不了解C ++的历史,因此我无法判断本文的正确性。我应该避免使用术语STL吗?还是这是一个孤立的意见?

12
您可以在遍历std :: list的同时删除其中的元素吗?
我有看起来像这样的代码: for (std::list<item*>::iterator i=items.begin();i!=items.end();i++) { bool isActive = (*i)->update(); //if (!isActive) // items.remove(*i); //else other_code_involving(*i); } items.remove_if(CheckItemNotActive); 我想在更新不活动的项目后立即将其删除,以避免再次浏览列表。但是,如果添加注释行,则出现以下错误i++:“列表迭代器不可递增”。我尝试了一些替代方法,这些替代方法在for语句中没有增加,但是我什么也无法工作。 走std :: list时删除项目的最佳方法是什么?
239 c++  list  std 

4
为什么我会使用push_back而不是emplace_back?
C ++ 11向量具有新功能emplace_back。与push_back依赖于编译器优化来避免复制的,它不同,它emplace_back使用完美的转发将参数直接发送到构造函数以就地创建对象。在我看来,emplace_back一切push_back都能做,但是有时候它会做得更好(但永远不会更糟)。 我必须使用什么原因push_back?
231 c++  c++11  std 

3
cout不是std的成员
我正在练习使用多个文件和头文件等。因此,我有一个项目,该项目将两个数字加起来。很简单 这是我的文件: main.cpp #include <iostream> #include "add.h" int main() { int x = readNumber(); int y = readNumber(); writeAnswer(x + y); return(0); } io.cpp int readNumber() { int x; std::cout << "Number: "; std::cin >> x; return x; } void writeAnswer(int x) { std::cout << "Answer: "; std::cout << x; …
199 c++  io  std  member  cout 


16
C逐行读取文件
我编写了此函数来从文件中读取一行: const char *readLine(FILE *file) { if (file == NULL) { printf("Error: file pointer is null."); exit(1); } int maximumLineLength = 128; char *lineBuffer = (char *)malloc(sizeof(char) * maximumLineLength); if (lineBuffer == NULL) { printf("Error allocating memory for line buffer."); exit(1); } char ch = getc(file); int count = 0; …
183 c  file-io  line  std 


7
使用std :: string的printf?
我的理解是,它string是std名称空间的成员,那么为什么会发生以下情况? #include <iostream> int main() { using namespace std; string myString = "Press ENTER to quit program!"; cout << "Come up and C++ me some time." << endl; printf("Follow this command: %s", myString); cin.get(); return 0; } 每次程序运行时,都会myString打印一个看似随机的3个字符的字符串,例如在上面的输出中。
157 c++  string  namespaces  printf  std 

8
迭代时从std :: set中删除元素
我需要遍历一组并删除符合预定义条件的元素。 这是我编写的测试代码: #include <set> #include <algorithm> void printElement(int value) { std::cout << value << " "; } int main() { int initNum[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; std::set<int> numbers(initNum, initNum + 10); // print '0 1 2 3 4 5 6 7 …



7
C中的stdlib和彩色输出
我正在制作一个需要彩色输出的简单应用程序。如何使输出的颜色像emacs和bash一样? 我不在乎Windows,因为我的应用程序仅适用于UNIX系统。
125 c  colors  std  stdio 

8
在C ++中使用C标头时,我们应该使用std ::或全局名称空间中的函数吗?
C在某种程度上,也不完全是C ++的子集。因此,我们可以通过改变名称一点点(使用最多的C函数的C /头++ stdio.h来cstdio,stdlib.h到cstdlib)。 我的问题实际上是一种语义。在C ++代码(使用最新版本的GCC编译器)中,我可以调用printf("Hello world!");和std::printf("Hello world!");,它的工作原理完全相同。在我正在使用的参考资料中,它也显示为std::printf("Hello world!");。 我的问题是,是否首选std::printf();在C ++中使用?有区别吗?
113 c++  language-lawyer  std 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.