据我所知,写时复制不是std::string在C++ 11中实现符合性的可行方法,但最近在讨论中我发现自己无法直接支持该语句.
我是否正确C++ 11不承认基于COW的实现std::string?
如果是这样,这个限制是否在新标准(其中)的某处明确说明了?
或者这个限制是否暗示,因为新要求的综合影响std::string排除了基于COW的实施std::string.在这种情况下,我会对"C++ 11有效禁止基于COW的std::string实现" 的章节和样式推导感兴趣.
到目前为止,我可以读取每一行并将其打印到控制台:
void readFile(){
string line;
ifstream myfile("example1.pgm");
if (myfile.is_open()){
while (myfile.good()){
getline (myfile,line);
cout << line;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,pgm文件显然在数据开始之前总是有以下内容:
P2
# test.pgm
24 7
15
Run Code Online (Sandbox Code Playgroud)
我如何调整我的代码,以便检查"P2"是否存在,忽略任何注释(#),并存储变量和后续像素数据?
我有点失落,对c ++很陌生,所以任何帮助都是有用的.
谢谢